|
@@ -81,6 +81,7 @@ function initWebsocket() {
|
|
|
function websocketonopen() {
|
|
|
let data = initPage();
|
|
|
console.log('建立ws连接', data)
|
|
|
+ //开启心跳
|
|
|
start();
|
|
|
//发送链接身份数据
|
|
|
connectSend(data.openId, data.userId, data.houseId);
|
|
@@ -93,7 +94,7 @@ function websocketonopen() {
|
|
|
function websocketonmessage(e) {
|
|
|
// console.log('客户端接收服务端数据时触发', e);
|
|
|
//收到服务器信息,心跳重置
|
|
|
- // reset();
|
|
|
+ reset();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -118,7 +119,7 @@ function websocketclose(e) {
|
|
|
}
|
|
|
|
|
|
function websocketsend(Data) {
|
|
|
- console.log('ws状态', wsConfig.ws)
|
|
|
+ // console.log('ws状态', wsConfig.ws)
|
|
|
if(wsConfig.ws && wsConfig.ws.readyState==1){
|
|
|
let param = [
|
|
|
"SEND" +
|
|
@@ -271,11 +272,13 @@ function reconnect() {
|
|
|
function reset() {
|
|
|
console.log('重启心跳')
|
|
|
//重置心跳
|
|
|
- // clearTimeout(wsConfig.timeoutObj);
|
|
|
+ clearTimeout(wsConfig.timeoutObj);
|
|
|
// //清除时间
|
|
|
- // clearTimeout(wsConfig.serverTimeoutObj);
|
|
|
+ clearTimeout(wsConfig.serverTimeoutObj);
|
|
|
//重启心跳
|
|
|
- wsSendHeartBeat();
|
|
|
+ // wsSendHeartBeat();
|
|
|
+ //开启心跳
|
|
|
+ start();
|
|
|
}
|
|
|
// socket 心跳发送
|
|
|
function wsSendHeartBeat() {
|
|
@@ -305,15 +308,26 @@ function start() {
|
|
|
let ws = wsConfig.ws;
|
|
|
//开启心跳
|
|
|
// console.log("开启心跳", wsConfig,ws.readyState);
|
|
|
+ let data = ["\n"];//心跳的数据格式
|
|
|
+ ws.send(JSON.stringify(data));
|
|
|
wsConfig.timeoutObj && clearTimeout(wsConfig.timeoutObj);
|
|
|
wsConfig.serverTimeoutObj && clearTimeout(wsConfig.serverTimeoutObj);
|
|
|
wsConfig.timeoutObj = setTimeout(function() {
|
|
|
+ //这里发送一个心跳,后端收到后,返回一个心跳消息,
|
|
|
+ if (websock.readyState == 1) {
|
|
|
+ //如果连接正常
|
|
|
+ ws.send(JSON.stringify(data)); //这里可以自己跟后端约定
|
|
|
+ } else {
|
|
|
+ //否则重连
|
|
|
+ self.reconnect();
|
|
|
+ }
|
|
|
wsConfig.serverTimeoutObj = setTimeout(function() {
|
|
|
+ console.warn("***超时主动关闭***")
|
|
|
//超时关闭
|
|
|
ws.close();
|
|
|
}, wsConfig.timeout);
|
|
|
}, wsConfig.timeout);
|
|
|
- wsSendHeartBeat();//开始心跳
|
|
|
+ // wsSendHeartBeat();//开始心跳
|
|
|
}
|
|
|
var util = {
|
|
|
dateFormat(date, fmt) {
|