首先new一个webscoket的连接

let noticeSocketLink = new WebSocket(‘webSocket的地址’)

这里是连接成功之后的操作

linkNoticeWebsocket(){noticeSocketLink.onopen = ()=>{//在连接成功打开的时候调用断线重连的函数,传入websocket对象
webCloseLink(noticeSocketLink)}this.noticeSocketLink.onmessage = res => {console.log("res")}noticeSocketLink.onclose = res => {console.log("websocket is closed")}},

//断开连接,断线重连的函数

webCloseLink(WebSocketId){WebSocketId.send("心跳包内容")// 每个15秒发送一次心跳包let hb = setInterval(()=>{WebSocketId.send("心跳包内容")// 检测到websocket连接断开if(WebSocketId.readyState == 2 || WebSocketId.readyState == 3){clearInterval(this.hb)let i = 1let myVar = setInterval(()=>{if(WebSocketId.readyState == 2 || WebSocketId.readyState == 3){// 重新new一个websocket的连接this.noticeSocketLink = new WebSocket(WebSocketId.url);WebSocketId = this.noticeSocketLink;if(i == 5){clearInterval(myVar);// location.reload();return}i++}else if(WebSocketId.readyState == 0){}else if(WebSocketId.readyState == 1){ // websocket重连成功this.linkNoticeWebsocket();clearInterval(hb)clearInterval(myVar)}},4*1000)}}, 15000)
},

转载于:https://www.cnblogs.com/qisimx/p/10518355.html

webSocket使用心跳包实现断线重连相关推荐

  1. Android Socket连接(模拟心跳包,断线重连,发送数据等)

    首页 博客 学院 下载 GitChat TinyMind 论坛 问答 商城 VIP 活动 招聘 ITeye CSTO 写博客 发Chat 喻志强的博客 耐心 细心 用心 传播正能量 RSS订阅 原 A ...

  2. WebSocket的心跳机制和断线重连

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

  3. 浅析 Netty 实现心跳机制与断线重连

    基础 何为心跳 顾名思义, 所谓 心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性. 为什么需要心跳 因为网络的不可 ...

  4. Netty是如何实现TCP心跳机制与断线重连的

    本文来说下Netty 是如何实现 TCP 心跳机制与断线重连的 文章目录 什么是心跳机制HeartBeat 如何实现心跳机制 Netty实现自定义的心跳机制 服务端 客户端 测试效果 客户端断线重连 ...

  5. Netty——心跳机制与断线重连

    心跳机制与断线重连 心跳机制 IdleStateHandler 客户端 服务端 测试 正常情况 异常情况 总结 断线重连 为了保证系统的稳定性,心跳机制和断线重连可是必不可少的,而这两个在Netty中 ...

  6. 面试官问:服务的心跳机制与断线重连,Netty底层是怎么实现的?懵了

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 心跳机制 何为心跳 所谓心跳, 即在 TCP 长连接中, ...

  7. Netty实现心跳机制与断线重连

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:https://www.jianshu.com/p/ ...

  8. 四、Netty 实现心跳机制与断线重连

    一.概述 何为心跳 顾名思义, 所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性. 为什么需要心跳 因为网络的不 ...

  9. 给websocket加入心跳包防止自动断开连接

    var userId = $("#userId").val(); var lockReconnect = false; //避免ws重复连接 var ws = null; //判断 ...

最新文章

  1. 在Eclipse中关联Android Private Libraries中文件的源代码
  2. 计划策略70 之 MIXED MRP(mixed MRP)
  3. SP2中修复IE浏览器的一些技巧
  4. 网线重新插拔后恢复正常_14日科技精选:路由器经常掉线,必须重新插拔网线才能上网。什么原因?...
  5. 机器学习之问题建模(一)
  6. 机器学习基本算法思想和步骤
  7. SLAM--卡尔曼滤波、粒子滤波
  8. android rom制作教程,【图片】ROM助手:任意安卓机型的ROM制作教程【a298t吧】_百度贴吧...
  9. 在Ubuntu中安装Python科学计算环境
  10. 寻找春天nbsp;九宫格日记-2013.06.01
  11. 女生学UI合适吗?橙色优学告诉你女生UI设计优势
  12. Usb ssh 管理android,Android USB VID PID 及 ADB
  13. { }大括号和[ ]中括号的用法
  14. 面向政府治理大数据的高性能计算系统
  15. 51NOD L4-第三章 树 刷题记录-zyz
  16. Linux共享库编程方法,Linux共享库c
  17. mpf11_3_status_plotly Align dual Yaxis_animation_button_MFI_Williams %Rsi_AO Co_VWAP_MAcd_BollingerB
  18. IROS2020开源软硬件!多激光雷达的协同定位建图及在线外参自标定
  19. Javascript 控制文本框的输入法切换
  20. 虚拟同步发电机(VSG)并网控制

热门文章

  1. 013_JDBC模板使用第三方连接池
  2. 035_jQuery Ajax的ajaxSetup方法
  3. 008_CSS属性选择器
  4. 实战派mysql高阶应用指南_MySQL高阶SQL语句(学会这些,让你对于数据库游刃有余)_Gengchenchen的博客-CSDN博客...
  5. Hyperledger Indy 理解
  6. python输入名字、输出欢迎你_python笔记3-输出输入、字符串格式化
  7. prerenderspaplugin 打包完成后如何让百度收录_如何提高网站流量、排名?
  8. Android进程保活招式大全
  9. gcn语义分割_ICCV Oral 2019:152层GCN大幅加深图卷积网络的方法,点云分割任务效果显著...
  10. php 补足字符串,php 数目字或者字符串补全