Skip to content

websocket 的封装

参考文章: 掘金的一篇(但是好像不是工作中用的,大部分代码还是非常有参考意义的)

CSDN 的一篇使用Promise封装的,基本思路很对,但是代码不太完善

[告别屎山!!!WebSocket 的极致封装, 写好代码竟如此简单]https://juejin.cn/post/7220236377937559589

参考项目:

vueuse的useWebSocket

预期功能

  • 断网重连
  • 断线重连
  • 超时重连
  • 消息超时
  • 心跳检测
  • 超时重发

初步的设计思路

设计模式使用:

单例模式:就是使用类似于 Vuex 的全局状态管理 原型模式:就是一些交互的方法可以直接卸载原型中,直接调用即可

要点设计:

每个消息有一个唯一的id来进行区分,放到 Map 里面,然后消息回来的时候根据id 进行 resolve 或者 reject,最后从Map中进行删除,防止占用内存

Released under the ISC License.