我在开发中写客服聊天功能的时候遇到了个问题,就是当服务端重新部署的时候,我的客服端的WebSocket就会断连,这样后面服务端就算部署成功后,他也是收不到消息的~
我的解决方法:
在读WebSocket的api时发现了onclose事件,他是监听只要WebSocket发生错误或者断连就会执行这个回调函数
// 错误
const ws = new WebSocket(IP);
ws.onclose = (e) => {
// 重新请求
setTimeout(() => {
//200-2200毫秒随机时间后 重新执行连接,这样会错峰的去连接,不会所有用户一起连接给服务器压力
},200 + Math.floor(Math.random() * 2000));
};