websocket需要自己维护心跳吗

现在做项目需要用到websocket,但是有几点疑惑

  1. websocket协议本身有没有心跳机制,需不需要自己去定时检测
  2. 如果有的话,浏览器支持情况怎么样,可以放心使用吗
  3. 还有关于onclose,是不是不论何时何种原因被关闭,onclose都会100%触发吗

请大佬们指点一下小弟!!!

阅读 10.5k
5 个回答

1、不维护的话,你服务端到时候就会维护着一堆烂连接,占用资源,所以这里如果是面向外部开放的必须要维护。
2、这个你自己实现就好了 setTimeout ,兼容几乎不用担心,只要支持 websocket 那就没有不支持的。
3、是

实在搞不懂,没用心跳链接的websocket有什么用?90%使用websocket都是要维护的,那为什么不自带心跳链接?小程序的好像也没有

新手上路,请多包涵

1/为保持健康的socket连接,心跳机制是必不可少的
2/支持websocket的应该没有什么兼容问题
3/一定会触发
还有楼上说要自带心跳连接的,我觉得不必要吧,可控性差,导致资源占用过多

  1. 木有. 手动实现吧~
  2. websocket 兼容性还行~
  3. 只要你发起连接没有问题, 那连接断开一定会触发 onclose 事件, 不用担心它跑去触发 onerror.

另外, 附带一提, websocket 在网络情况较差的时候, 时断时续情况非常严重. 建议你用 socket.js, 用 http 协议替代 ws 协议.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏