websocket 心跳机制

这篇具有很好参考价值的文章主要介绍了websocket 心跳机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WebSocket 是一种在客户端和服务器之间创建持久连接的技术。为了保持连接的稳定性,就需要通过发送心跳消息来维持 WebSocket 连接。

1、创建一个webscoket基本的使用

// 创建 WebSocket 对象,传入服务器地址
const socket = new WebSocket('ws://url');

// 监听 WebSocket 的打开事件
socket.addEventListener('open', (event) => {
  // 在此处理连接打开时的逻辑
});

// 监听 WebSocket 接收到消息的事件
socket.addEventListener('message', (event) => {
  // 在此处理从服务器接收到的消息的逻辑
});

// 监听 WebSocket 关闭事件
socket.addEventListener('close', (event) => {
  // 在此处理连接关闭时的逻辑
});

// 监听 WebSocket 发生错误的事件
socket.addEventListener('error', (event) => {
  // 在此处理连接发生错误时的逻辑
});

// 向服务器发送消息
socket.send('Hello, server!');

2、在客户端连接到 WebSocket 服务器之后,通过 setInterval 方法定时发送心跳消息

let ws = new WebSocket('ws://localhost:8080');
let heartCheck;

ws.onopen = function() {
  heartCheck = setInterval(function() {
    ws.send('HeartBeat');
  }, 5000);  // 发送心跳消息的时间间隔,单位毫秒
}

这边的代码会每隔5秒向服务器发送一个心跳信息

3、在客户端接收到服务器发送的消息时,清除心跳定时器。因为如果服务器一直有推送消息,那么就无需再发送心跳消息

let ws = new WebSocket('ws://url');
let heartCheck;

ws.onopen = function() {
  heartCheck = setInterval(function() {
    ws.send('HeartBeat');
  }, 5000);
}

ws.onmessage = function() {
  clearInterval(heartCheck);
  heartCheck = setInterval(function() {
    ws.send('HeartBeat');
  }, 5000);
}

在客户端接收到服务器发送的消息时,清除了原来的心跳定时器,并重新创建了一个心跳定时器,从而保证 WebSocket 的连接状态。

4、在客户端检测到 WebSocket 连接关闭时,清除心跳定时器。因为如果 WebSocket 连接关闭了,那么心跳定时器也就没有了意义

let ws = new WebSocket('ws://url');
let heartCheck;

ws.onopen = function() {
  heartCheck = setInterval(function() {
    ws.send('HeartBeat');
  }, 5000);
}

ws.onmessage = function() {
  clearInterval(heartCheck);
  heartCheck = setInterval(function() {
    ws.send('HeartBeat');
  }, 5000);
}

ws.onclose = function() {
  clearInterval(heartCheck);
}

当检测到 WebSocket 连接关闭时,清除了心跳定时器文章来源地址https://www.toymoban.com/news/detail-513613.html

到了这里,关于websocket 心跳机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp websocket机制 心跳 重连

    在开发程序过程中通信功能还是比较常用到的,本文主要介绍的是uniapp中websocket的使用 websocket建立连接后,断开、心跳机制重新链接的一个过程。 关于uni.connectSocket可仔细阅读uniapp官网中的uni.connetSocket以及连接socket创建的实例 SocketTask   具体代码如下:内有代码详细注解,

    2024年02月12日
    浏览(37)
  • websocket以及心跳机制的实现

            在浏览器与服务器通信之间,传统的http请求在某些场景下并不理想,比如实时聊天,实时性的小游戏等等, 其中面临主要的两个缺点: 无法做到消息的实时性 服务器无法主动推送信息 其基于http的主要解决方案有: 基于ajax的轮询:客户端定时或者动态相隔短时

    2024年02月04日
    浏览(37)
  • WebSocket断开原因和心跳机制

    WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来。 错误状态码: WebSocket断开时,会触发CloseEvent, CloseEvent会在连接关闭时发送给使用 WebSockets 的客户端. 它在 WebSocket 对象的 onclose 事件监听器中使用。CloseEvent的code字段表示了WebSocket断开的原因。可以从该字段

    2024年02月04日
    浏览(48)
  • WebSocket心跳检测和重连机制

    心跳和重连的目的用一句话概括就是客户端和服务端保证彼此还活着,避免丢包发生。 websocket 连接断开有以下两证情况: 前端断开 在使用 websocket 过程中,可能会出现网络断开的情况,比如信号不好,或者网络临时关闭,这时候websocket的连接已经断开,而不同浏览器有不同

    2024年01月21日
    浏览(39)
  • WebSocket的心跳机制和断线重连

    在服务器重启或是弱网情况下,前端不能保证一直连接成功。因此在出现被动断开的情况下,需要有 心跳机制 和 断线重连 的功能。 心跳机制 :客户端每隔一段时间向服务端发送一个特有的心跳消息,每次服务端收到消息后只需将消息返回,此时,若二者还保持连接,则客

    2024年01月18日
    浏览(43)
  • websocket前端封装代码,心跳机制断线重连

    websocket是一种全双工通信长链接,大多用来实现及时通讯,数据实时性要求较为高的地方,在websoket未出现的时候前端使用的setInterval轮训进行数据更新的,在那些对于数据实时性要求不高地方我们仍可以使用 轮训。 (1)建立在 TCP 协议之上,服务器端的实现比较容易。 (

    2024年02月11日
    浏览(52)
  • websocket的基础使用,心跳机制,断线重连

    websoket出现的原因: 传统的http请求只能是由前端向后台发送一个请求,然后后台把结果返回给前端,前端再进行展示。这里就暴露了一个问题,就是通信只能由前端发起,而后台无法主动与前端通信。而websoket的出现就是为了解决这个问题,让前端可以主动联系后台,后台也

    2024年02月06日
    浏览(46)
  • Flutter:WebSocket封装-实现心跳、重连机制

    前言Permalink Flutter简介 Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter提供了丰富的组件、接口,开发者可以很快地为 Flutter添加 native扩展。同时 Flutter还使用 Nat

    2024年02月10日
    浏览(49)
  • WebSocket实战之六心跳重连机制

    WebSocket应用部署到生产环境,我们除了会碰到因为经过代理服务器无法连接的问题(注:该问题可以通过搭建WSS来解决,具体配置请看 WebSocket实战之四WSS配置 ),另外一个问题就是外网环境不稳定经常会断开或者服务器重启或者网络中间服务器当发现一个长连接长时间没有

    2024年02月07日
    浏览(46)
  • uniapp使用WebSocket断线,心跳重连机制

    提示:我们在使用WebSocket,经常会遇到有的时候给别人发消息,别人会接收不到,这个时候就有可能是WebSocket断线了,所以这个时候心跳包就出现了 提示:可直接使用,记得把对应地址替换一下

    2024年04月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包