WebSocket重试机制代码
时间: 2023-12-10 14:00:09 浏览: 24
以下是使用 JavaScript 和 WebSocket API 实现的 WebSocket 重试机制代码示例:
```javascript
const MAX_RETRIES = 5; // 最大重试次数
const RETRY_DELAY = 3000; // 重试延迟时间(ms)
let retries = 0;
let socket = null;
function connectWebSocket() {
socket = new WebSocket('ws://localhost:8080');
socket.onopen = function() {
console.log('WebSocket 连接已建立');
retries = 0; // 重置重试次数
};
socket.onmessage = function(event) {
console.log(`收到消息:${event.data}`);
};
socket.onclose = function(event) {
if (event.wasClean) {
console.log(`WebSocket 连接已关闭,代码:${event.code},原因:${event.reason}`);
} else {
console.log('WebSocket 连接意外关闭');
retryWebSocket();
}
};
socket.onerror = function(error) {
console.log(`WebSocket 连接错误:${error.message}`);
retryWebSocket();
};
}
function retryWebSocket() {
if (retries < MAX_RETRIES) {
retries++;
console.log(`WebSocket 正在尝试重连,第 ${retries} 次重试...`);
setTimeout(connectWebSocket, RETRY_DELAY);
} else {
console.log(`WebSocket 重试次数已达到上限(${MAX_RETRIES} 次),放弃重试`);
}
}
connectWebSocket(); // 启动 WebSocket 连接
```
在上述示例中,`connectWebSocket()` 函数用于建立 WebSocket 连接,并设置对应的事件处理函数。当连接关闭或出现错误时,会调用 `retryWebSocket()` 函数进行重试。如果重试次数超过预设的上限,则放弃重试。