当前位置: 首页 > news >正文

手机微网站开发长沙做门户网站的公司

手机微网站开发,长沙做门户网站的公司,网站用图怎么做文件小质量高,wordpress判断用户现象 websocket 先连接成功,然后断网。 由于维护了一套心跳机制,前端发起心跳,如果一段时间内没有收到服务端返回的心跳。则表示连接断开。 用心跳的方式处理断网的兜底情况。 然而,此时网络是断开的,在代码中直接调…

现象

websocket 先连接成功,然后断网。

由于维护了一套心跳机制,前端发起心跳,如果一段时间内没有收到服务端返回的心跳。则表示连接断开。

用心跳的方式处理断网的兜底情况。

然而,此时网络是断开的,在代码中直接调用websocket.close() 方法,会发现,websocket.readyState 会一直在 WebSocket.CLOSING 状态,等很久也不会触发onclose 回调。

只有网络通的时候才会触发 websocket onclose。

这样会触发不了我的重连逻辑。因为重连逻辑做在onclose 回调里面。

解决

通过定时器检查websocket 的状态,如果在几秒钟之后,还是 CLOSING 状态,则直接调用onclose 的回调。

onclose 的回调有一个参数,可以通过 new CloseEvent 来模拟,代码如下。

const ws = new WebSocket('ws://xxxx');ws.onclose = onclose;function onclose(e){}// 可以在检测到closing 状态超时了后,主动调用onclose 回调,自行模拟eventonclose(new CloseEvent('close', {wasClean: false,code: 3000,reason: 'websocket closing timeout',
}))

还要注意的是,在重新new Websocket 之前,要清除当前的websocket实例,其中的各种回调要置为null (onopen, onclose, onerror, onmessage)

因为等到重连的时候,这个CLOSING 状态的ws实例会触发onclose,导致onclose回调中的内容被重复执行。

参考

  • WebSocket.close() - Web API | MDN
  • CloseEvent - Web API | MDN
http://www.dtcms.com/a/489075.html

相关文章:

  • wdcp搭建网站辽宁城乡住房建设厅网站打不开
  • 门户网站作用wordpress美观
  • 网站新闻百度收录扬中市住房和城乡建设局网站
  • 肇庆网站制作费用模板做图 网站
  • 网站名字备案流程宁夏石嘴山市城乡建设局提意见网站
  • 南阳网站建设电话医疗网络营销外包
  • wordpress采集建站wordpress膜版教程
  • 上海seo网站新华区网站建设
  • 网站建设 资质荣誉深圳专业网站设计公司价格
  • 科技网站实例50000免费短视频素材
  • 做一个购物商城网站多少钱一个网站域名多少钱
  • 网站设计说明深圳微信公众号开发
  • 江西省住房和城乡建设厅的网站企业信息填报系统
  • 个人网站怎么进后台荆门公司做网站
  • 四平网站建设服务域名解析后网站怎么建设
  • 如何做网课网站it运维外包服务方案
  • pytorch学习日记
  • 网站建设阶段要做什么网页版微信二维码失效
  • 课程网站开发流程图及原型图网站提示404error
  • 江门网站推广排名如何建立一个自己的网站?
  • 万站群cms做类似淘宝的网站
  • 5118素材网站html网页制作用什么语言
  • 茶叶企业网站源码想注册一个做网站的公司
  • 网站建设及售后服务的说明书idc网站是用什么语言做的
  • 长沙外贸企业网站建设西安观止软件科技有限公司
  • 熊掌号结合网站做seo企业建设微网站的重要性
  • 个人备案网站会影响吗无锡百度
  • seo网站优化培训找哪些wordpress开发微商分销系统
  • 网络维护一个月多少钱seo研究中心论坛
  • 保定聊城网站建设代理地址怎么设置