websocket心跳检测和重连机制(复制即用)

websocket中的心跳重连机制 11111 阅读详情
data() {
  return {
    wsurl: 'ws://127.0.0.1:8080',
    websock: null,
    lockReconnect: false,
    timerReconnect: null,
    heartTimeout: null,
    serverTimeout: null
  };
},
created() {
  this.createWebSocket();
},
beforeDestroy() {
  if (this.websock) this.websock.close();
},
// 创建websocket
createWebSocket() {
  try {
    this.websock = new WebSocket(this.wsurl);
    this.initWebSocket();
  } catch (e) {
    console.log('catch', e);
    this.reconnect();
  }
},
initWebSocket() {
  this.websock.onmessage = (e) => {
    console.log('数据接收', e);
    // 拿到pong说明当前连接是正常的
    if (e.data === 'pong') {
      this.heartCheck();
    }
  };
  this.websock.onopen = () => {
    console.log('连接成功', this.websock);
    this.heartCheck();
  };
  this.websock.onerror = () => {
    console.log('连接失败');
    this.reconnect();
  };
  this.websock.onclose = (e) => {
    console.log('断开连接', e);
    this.reconnect();
  };
},
// 重连
reconnect() {
  if (this.lockReconnect) {
    return;
  }
  console.log('发起重连');
  this.lockReconnect = true;
  // 没连接上会一直重连,设置延迟
  this.timerReconnect && clearTimeout(this.timerReconnect);
  this.timerReconnect = setTimeout(() => {
    this.createWebSocket();
    this.lockReconnect = false;
  }, 3 * 1000);
},
// 心跳检测
heartCheck() {
  this.heartTimeout && clearTimeout(this.heartTimeout);
  this.serverTimeout && clearTimeout(this.serverTimeout);
  this.heartTimeout = setTimeout(() => {
    // 发送一个心跳包
    console.log('发送ping');
    this.websock.send('ping');
    // 计算答复的超时时间
    this.serverTimeout = setTimeout(() => {
      this.websock.close();
      console.log('答复超时');
    }, 5 * 1000);
  }, 4 * 1000);
}
实战 | 企业级实时通信系统 WebSocket 封装:心跳检测 + 智能重连 + 二进制数据处理(附脱敏完整源码) 本文分享企业级生产环境可用的 WebSocket 完整封装方案,包含 Token 鉴权、防重复初始化、二进制数据处理、智能心跳检测、页面可见性适配、指数退避重连等核心能力。代码已脱敏可直接复用,解决原生 WebSocket 断连无感知、弱网不稳定、后台心跳丢失、暴力重连冲击后端等痛点,适用于高并发实时通信、协作系统、监控平台等场景,快速搭建高稳定长链接服务。 阅读详情

相关推荐

uniapp实战:封装WebSocket类实现多场景通信(含心跳检测与断线重连)

本文详细介绍了在uniapp中封装健壮的WebSocket类,实现多场景实时通信。核心在于集成心跳检测机制防止连接超时,并实现智能断线重连策略以应对网络波动,确保连接稳定可靠。文章提供了完整的代码实现、后端配合方案及实战避坑指南,帮助开发者快速构建高可用的实时通信功能。

weixin_29208327的博客 425

Springboot+WebSocket 自动重连机制

Springboot+WebSocket 自动重连机制 1、WebSocket WebSocket 是一种在单个TCP连接上进行全双工通信的协议,通信协议可能更熟悉的是HTTP,因此,学习WebSocket可以-以- HTTP为参考点。 HTTP 协议的缺陷是通信只能由客户端发起,做不到服务器主动向客户端推送信息。 WebSocket 协议它的最大特点就是弥补了HTTP的缺陷,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于消息推送技术的一种。 需要注意的是:W

weixin_45295678的博客 4833

websocket心跳检测前后端架构

websocket心跳检测前后端架构 本篇文章为初略架构websocket在前后端的心跳检测机制,实现相对毛糙。 下面介绍内容参照 廖雪峰 的描述,为了切换页面麻烦,这里就直接挑简要的信息复制黏贴过来。 廖雪峰 – WebSocket 教程。 为什么需要 WebSocket? 初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什...

FlyWine的博客 2426

websocket心跳重连的简单实现

websocket心跳重连的简单实现

weixin_43760238的博客 1155

redhawk-sc使用简介

数据完整性对结果的准确性有很大影响,所以一定要保证数据完整性,Redhawk-sc在跑完后,Report里有Data Integrity界面,在这个界面会看到设计数据和库文件的数据完整性,在相应的报告中会有没有覆盖到的数据情况,要对每一项仔细检查,保证输入数据没有问题。文件一般加密,用户唯一需要选择的是文件的corner。其中,cell lef除了常规的standard cell,还有如DTCD,BTSV和clamp等cell的lef,不可缺失,否则data integrity将不是100%。

weixin_48518726的博客 3138

【Qt笔记】1.VSCode搭建Qt运行环境

Qt6之后已经抛弃qmake,使用cmake。cmake相对qmake来说只有优点没有缺点。使用VSCode搭建完Qt的运行环境就能开开心心debug了.vscode需要使用的插件:2.Qt tools3.CMakec++插件可以不关注,缺啥都会提醒你.正常安装即可。

没有手牌的博客 2万+

WebSocket的心跳机制和断线重连

心跳机制的实现,在客户端连接成功的回调中即开启心跳。心跳处理函数内部使用定时器延时触发向服务端发送消息的方法,待服务器将消息返回证明是连线成功状态下,继续调用心跳检测方法。如果客户端给服务端发送心跳消息,在定义的超时时间后客户端没有收到回复,则说明和服务端断线了,此时会触发到客户端连接关闭的回调函数,在此回调中发起重新连接websocket。

weixin_45313351的博客 2万+

UUVsimulator仿真

pub -r 10 /cmd_vel geometry_msgs/Twist控制运动没有反应。通过键盘控制运动,接收不到/cmd_vel消息。

Fatal__的博客 4606

websocket断线重连&&心跳检测

封装websocket 实现断线重连跟心态检测,使用的typeScript去封装。

weixin_39530121的博客 3671

基于BS21的星闪模块设计电路SLE/BLE

基于BS21的星闪模块设计电路SLE/BLE HI2821

2503_91889531的博客 2739

手把手教你用STM32CubeMX配置I3C通信(含动态地址分配实战)

本文提供了一份基于STM32CubeMX配置I3C通信的实战指南,重点讲解了动态地址分配的实现步骤。通过详细的工程配置、从设备枚举、CCC命令使用及数据读写示例,帮助开发者快速掌握这一高效通信协议,以替代传统的I2C或SPI接口,满足多传感器连接与低功耗设计需求。

c8d9e0f1的博客 543

uni-app中websocket的使用 断开重连、心跳机制

前言 最近关于H5和APP的开发中使用到了webSocket,由于web/app有时候会出现网络不稳定或者服务端主动断开,这时候导致消息推送不了的情况,需要客户端进行重连。查阅资料后发现了一个心跳机制,也就是客户端间隔一段时间就向服务器发送一条消息,如果服务器收到消息就回复一条信息过来,如果一定时间内没有回复,则表示已经与服务器断开连接了,这个时候就需要进行重连。 被动断开则进行重连,主动断开的不重连。 说明:下图针对两个Tab项(Open Trades 和 Closed Trades),只希望在..

firstcode666的博客 6410

知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通。我们从文本数据中采集到关键信息,并抽取出其中的关系信息,然后在存入图数据库中,整个过程实现自动化,我这里将举一个文本例子进行抽取。 对于知识图谱的构建是将实体、概念和它们之间的关系都以图表形式呈现出来的一种数据结构。要构建一个知识图谱,需要从不同的数据源中采集到相关信息,并将这些信息整合在一起,最终形成一个全面而且精确的知识图谱。

微学AI的博客 2545

阿里Java面试被问:WebSocket的心跳检测和自动重连实现

本文介绍了WebSocket心跳检测与自动重连的完整实现方案。针对网络不稳定、服务器限制等问题,提出了基于TypeScript的WebSocket管理器类,包含心跳检测、自动重连、事件监听等功能。方案还提供了React Hook封装、Node.js服务端处理、连接质量监控等高级特性,并给出了不同场景下的参数配置建议。文章详细探讨了重连策略优化、离线消息队列等实用技巧,同时分析了常见问题及解决方案,包括流量开销控制、重连风暴预防等。最后提出了完整的测试方案,确保系统在各种网络条件下的可靠性。该方案能有效提升W

xh2277659985的博客 1088

扩散模型中的UNET

一、为什么UNET模型可以用于去噪网络 二、扩散模型中的UNET是一个条件去噪网络,怎么实现的 三、UNET用于分割和用去去噪的区别

m0_37737957的博客 3816

深入RKNN Toolkit2:自定义算子与内存优化秘籍

本文系统探讨了RKNNToolkit2在模型转换中的关键技术与优化策略。首先介绍了该工具包的基础功能及模型转换流程,重点阐述了自定义算子的实现方法,包括算子分析、代码编写和注册集成等步骤,并以ReduceLogSumExp算子为例进行案例分析。在内存优化方面,详细论述了模型量化、内存复用和参数配置等策略,通过具体案例展示优化效果。最后结合智能安防项目实践,分享了YOLOv5模型部署经验及问题解决方案。文章指出,随着AI技术发展,RKNNToolkit2将在算子支持、量化技术和硬件适配等方面持续优化,为边缘计

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1389

中国邮政Java面试被问:WebSocket的心跳检测和自动重连实现!!

本文介绍了一个健壮的WebSocket客户端实现方案,包含心跳检测、自动重连等核心功能。方案采用完整的心跳机制定期检测连接状态,支持指数退避算法的智能重连策略,提供连接池管理实现多服务器负载均衡和故障转移。系统包含完善的监控告警功能,能实时监控连接状态、延迟等指标,并具备优雅降级能力。实施建议包括根据业务场景调整心跳间隔、合理设置重连参数、添加监控告警等。该方案已在生产环境验证,能有效应对网络不稳定等各种异常情况,确保WebSocket连接的可靠性。

x2277659985的博客 1084

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Clawdbot保姆级实操:Qwen3:32B代理网关的WebSocket心跳检测、断线重连与消息去重机制

本文介绍了如何在星图GPU平台上自动化部署Clawdbot 整合 qwen3:32b 代理网关与管理平台镜像,实现稳定可靠的AI代理服务。通过内置的WebSocket心跳检测、断线重连与消息去重机制,该镜像可支撑高可用的实时对话场景,适用于企业级AI客服、智能文档分析等需要长连接与语义准确性的应用。

weixin_35982453的博客 988

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

CodeQL:把代码变成可查询的数据库,用一条查询扫出整库的安全隐患

安全人员发现一个漏洞后,最折磨人的往往不是"修好这一处",而是"同类问题还藏在哪些地方"。手动全局搜索只能匹配字面模式,换个写法就漏掉。CodeQL 就是为这种场景设计的:它把源代码提取成可查询的数据库,你用一种叫 QL 的查询语言像查表一样查代码结构、数据流和控制流,从而在一次查询中定位分散在几十个文件里的相似问题。当前仓库 [gh_mirrors/co/codeql](https://link

gitblog_00449的博客 942

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

uni-app 封装 websocket 并且监听心跳机制

uni-app 封装 websocket 并且监听心跳机制,uni-app中websocket的使用 断开重连、心跳机制,

weixin_46324536的博客 2322

Netty(三)高级应用 之 WebSocket 长连接、网络聊天、读写空闲检测、心跳机制

Netty 高级应用 本章会通过代码实例的方式将 Netty 常见应用场景中的知识点进行讲解。 1. WebSocket 长连接 1.1 WebSocket 简介 WebSocket 是 HTML5 中的协议,是构建在 HTTP 协议之上的一个网络通信协议,其以长连接的方式实现了客户端与服务端的全双工通信。 HTTP/1.1 版本协议中具有 keep-alive 属性,实现的是半双工通信。 Http协议只能由客户端向服务端发消息,然后获得响应,而WebSocket可以实现服务端主动向客户端发送消息。 全

语雀同名:犬豪 yuque.com/qhao 1908

Rust Forward 2025:工业级应用与底层原理深度解析

Rust语言以其内存安全和高性能特性,正在成为系统编程和工业级应用的热门选择。其核心原理包括所有权模型、零成本抽象和并发安全机制,这些特性使其在嵌入式系统、分布式存储和高性能计算等领域展现出独特优势。以异步编程为例,Rust通过async/await语法和轻量级线程模型,显著提升了IO密集型应用的吞吐量,如字节跳动广告系统实测QPS提升37%。在2025年Rust生态大会上,阿里云将分享基于Rust重构的分布式存储引擎实践,其中P99延迟从200ms降至15ms,内存占用减少60%。这些案例充分展示了Rus

weixin_34122810的博客 816

websocket心跳重连

为什么80%的码农都做不了架构师?>>> ...

weixin_33726318的博客 138

nv-websocket-client 重连机制与状态管理:构建稳定可靠的 WebSocket 连接

nv-websocket-client 是一个高质量的 Java WebSocket 客户端实现,提供了完善的重连机制与状态管理功能,帮助开发者构建稳定可靠的 WebSocket 连接。无论是网络波动还是服务器维护,合理的重连策略和状态管理都能显著提升应用的健壮性和用户体验。 ## 一、WebSocket 状态管理核心组件 ### 1.1 StateManager:连接状态的守护者 状态管理

gitblog_00179的博客 454

postman websocket_基于 websocket 的多端桥接平台

我们现在的业务是基于新闻客户端实现的,都要经过新闻客户端的环境,进行前后端数据上的交互。但是我们在调试过程中,非常的不方便。通常使用的工具有:modheader, postman, fiddler 等,但这些工具都会存在的问题:缺少客户端里相应的设备信息;即使将 cookie 信息复制出来,也是存在过期的问题;多个设备之间切换时不方便;针对这些存在的问题和不足,我基于 websocket 双向通信...

weixin_39637920的博客 3872
上一篇: window下安装并使用nvm(含卸载node、卸载nvm、全局安装npm)
下一篇: css 记录font-weight在谷歌浏览器中的表现
hst❀
博客等级 码龄8年 2364粉丝 147原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值