国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

加了心跳檢測(cè),還是不停的重連

yootou
function cateWebSocket(){
    try {
        ws = new WebSocket(wsUrl);
        initWebSocket();
    } catch (e) {
        reconnect();
    }
}

function initWebSocket(){
var msgloc=-1;
console.log("服務(wù)狀態(tài):連接中");
ws.onopen=function(){
var login_data = {type:"login",roomId:{sp$shopId},name:"管理員",userface:"",role:"member"};
ws.send(JSON.stringify(login_data));
?
heartCheck.reset().start();
};
ws.onmessage=function(e){
console.log(e.data);
var ret = JSON.parse(e.data);
switch(ret){
case "ping":
?
break;
case "chat":
console.log(ret);
break;
}
?
heartCheck.reset().start();
};
ws.onclose = function(e) {
reconnect(wsUrl);
};
ws.onerror = function() {
reconnect(wsUrl);
};
}
?
function reconnect() {
if(lockReconnect) return;
lockReconnect = true;
//沒連接上會(huì)一直重連,設(shè)置延遲避免請(qǐng)求過多
setTimeout(function () {
cateWebSocket();
lockReconnect = false;
}, 2000);
}
?
//心跳檢測(cè)
var heartCheck = {
timeout: 20000,//60秒
timeoutObj: null,
serverTimeoutObj: null,
reset: function(){
clearTimeout(this.timeoutObj);
clearTimeout(this.serverTimeoutObj);
return this;
},
start: function(){
var self = this;
this.timeoutObj = setTimeout(function(){
//這里發(fā)送一個(gè)心跳,后端收到后,返回一個(gè)心跳消息,
//onmessage拿到返回的心跳就說明連接正常
if(ws.readyState===1){
var data={type:"pong"};
ws.send(JSON.stringify(data));
}
self.serverTimeoutObj = setTimeout(function(){//如果超過一定時(shí)間還沒重置,說明后端主動(dòng)斷開了
ws.close();//如果onclose會(huì)執(zhí)行reconnect,我們執(zhí)行ws.close()就行了.如果直接執(zhí)行reconnect 會(huì)觸發(fā)onclose導(dǎo)致重連兩次
}, self.timeout);
}, this.timeout);
}
}
5047 3 0
3個(gè)回答

yootou

[attach]1795[/attach]
如上圖的情況 。。謝謝哈。

  • 暫無(wú)評(píng)論
yootou

看了workerman-chat聊天室案例,猜測(cè)是不是用的服務(wù)端發(fā)送心跳給客戶端?

  • 暫無(wú)評(píng)論
智佳思遠(yuǎn)

需要客戶端發(fā)心跳

  • 暫無(wú)評(píng)論
年代過于久遠(yuǎn),無(wú)法發(fā)表回答
??