socket.onclose 后重连
时间: 2023-07-23 17:35:52 浏览: 203
在 WebSocket 连接断开时,可以通过监听 `socket.onclose` 事件来处理重连。具体的做法是在 `onclose` 事件中触发一个重连的函数,可以使用 setTimeout 或 setInterval 函数来实现延时重连,即在一段时间后重新调用 WebSocket 连接函数。以下是一个示例代码:
```javascript
let socket = new WebSocket('ws://example.com');
socket.onclose = function(event) {
console.log('WebSocket 断开连接,代码:' + event.code + ' 原因:' + event.reason + ' 是否清理:' + event.wasClean);
// 重连
setTimeout(function() {
socket = new WebSocket('ws://example.com');
}, 5000);
};
socket.onopen = function(event) {
console.log('WebSocket 连接已建立');
};
socket.onmessage = function(event) {
console.log('收到服务器消息:' + event.data);
};
socket.onerror = function(event) {
console.log('WebSocket 错误:' + event);
};
```
在上面的示例代码中,当 WebSocket 连接断开时,会在 5 秒后重新调用 WebSocket 连接函数,从而实现了重连。需要注意的是,WebSocket 连接的重连次数和时间间隔应该在合理的范围内设置,以避免过多的重连请求对服务器造成压力。
阅读全文