websocket 心跳检测和重连 实例
时间: 2023-07-27 08:24:02 浏览: 165
WebSocket 心跳检测和重连是 WebSocket 应用中必不可少的功能,它可以保证 WebSocket 连接的稳定性和可靠性。下面给出一个 WebSocket 心跳检测和重连的实例:
```
var ws; // WebSocket 对象
var timer; // 心跳检测定时器
// 连接 WebSocket 服务器
function connect() {
ws = new WebSocket('ws://localhost:8080');
ws.onopen = function() {
console.log('WebSocket connected');
startHeartbeat(); // 开始心跳检测
};
ws.onmessage = function(event) {
console.log('Received message: ' + event.data);
};
ws.onclose = function(event) {
console.log('WebSocket closed: ' + event.code + ', ' + event.reason);
stopHeartbeat(); // 停止心跳检测
setTimeout(function() {
connect(); // 重新连接
}, 1000); // 1 秒后重连
};
}
// 开始心跳检测
function startHeartbeat() {
timer = setInterval(function() {
if (ws.readyState === WebSocket.OPEN) {
ws.send('ping'); // 发送心跳包
}
}, 5000); // 每 5 秒发送一次心跳包
}
// 停止心跳检测
function stopHeartbeat() {
clearInterval(timer);
}
connect(); // 连接 WebSocket 服务器
```
在上面的代码中,我们通过 setInterval 函数实现了每隔 5 秒向 WebSocket 服务器发送一个心跳包,用于检测 WebSocket 连接是否正常。如果 WebSocket 连接断开,我们通过 setTimeout 函数实现了 1 秒后重新连接 WebSocket 服务器的功能。通过这样的方式,我们可以实现 WebSocket 心跳检测和重连的功能。
阅读全文