websocket中的心跳重连机制目的:检测客户端和服务端是否处于正常连接的状态。
思路:
- 每隔一段指定的时间(定时器),向服务器发送一个数据,服务器收到数据后再发送给客户端,正常情况下客户端通过onmessage事件是能监听到服务器返回的数据,说明请求正常。
- 如果在这个指定时间内,客户端没有收到服务器返回的响应消息,就判断连接断开了,使用websocket.close关闭连接。
- 这个关闭连接的动作可以通过onclose事件监听到,因此在onclose事件内,我们可以调用reconnect事件进行重连操作。
//思路
//1.每隔一段指定的时间(定时器),向服务器发送一个数据,服务器收到数据后再发送给客户
//端,正常情况下客户端通过onmessage事件是能监听到服务器返回的数据,说明请求正常。
//2.如果在这个指定时间内,客户端没有收到服务器返回的响应消息,就判断连接断开了,使用websocket.close关闭连接。
//3.这个关闭连接的动作可以通过onclose事件监听到,因此在onclose事件内,我们可以调用reconnect事件进行重连操作。
//关键词:
//定时器、onmessage事件、onclose事件、reconnect事件
let ws = null; // 判断当前浏览器是否支持WebSocket
let wsUrl = myurl;
createWebsocket(wsUrl); //连接ws
//2.1通过createWebsocket创建连接
function createWebsocket(wsUrl) {
try {
//检查兼容性
if('WebSocket' in window){
ws = new WebSocket(wsUrl);
}else if('MozWebSocket' in window){
ws = new MozWebSocket(wsUrl);
}else