修改后会增大对服务端的性能消耗! 只修改apiclient.js 转载请保留署名与来源 开始支持的版本: 安卓:3.4.32+ ios: 2.2.33+ web端: 4.9.0.35b+ 4.8.10.0+ //// web & android:phone // 1 default=void 0; 替换为 default=void 0;var iswsAlive=false;const heartbeatInterval=10000;var reConCount=0;var tryReConWsBoxTag=0; // 2 "websocketopen"); "websocketopen");iswsAlive = true;var pingWsBox=setInterval(()=>{if(socket.readyState===WebSocket.OPEN){console.log("ws ping to server");socket.send(JSON.stringify({MessageType:"ping"}));}else clearInterval(pingWsBox);},heartbeatInterval); // 3 "websocketclose")},0) "websocketclose")},0);iswsAlive=false;if(!tryReConWsBoxTag){tryReConWsBoxTag=1;var tryReConWsBox=setInterval(()=>{console.log("iswsAlive: "+iswsAlive);if(iswsAlive==true){clearInterval(tryReConWsBox);tryReConWsBoxTag=0;}else{apiClient.tryReConnectWs(socket);}}, heartbeatInterval);} // 4 ,{key:"sendWebSocketMessage" ,{key:"tryReConnectWs",value:function(socket){if (iswsAlive==false && socket.readyState==WebSocket.CLOSED){console.log("reconnect web socket, times: "+(++reConCount)+", go");this.ensureWebSocket();}else console.log("reconnect web socket, times: "+(++reConCount)+", pass");}},{key:"sendWebSocketMessage" //// ios: iphone&ipad // 1 default=void 0; default=void 0;var iswsAlive=false;const heartbeatInterval=10000;var reConCount=0;var tryReConWsBoxTag=0; // 2 "websocketopen"); "websocketopen");iswsAlive=true;var pingWsBox=setInterval(()=>{if(this._webSocket.readyState === WebSocket.OPEN) {console.log("ws ping to server");this._webSocket.send(JSON.stringify({MessageType:"ping"}));}else clearInterval(pingWsBox);},heartbeatInterval); //3 "websocketclose")},0) "websocketclose")},0);iswsAlive=false;if(!tryReConWsBoxTag){tryReConWsBoxTag=1;var tryReConWsBox=setInterval(()=>{if(iswsAlive == true){clearInterval(tryReConWsBox);tryReConWsBoxTag=0;}else{apiClient.tryReConnectWs(socket);}},heartbeatInterval);} //4 socket.close()} socket.close()}tryReConnectWs(socket){if(iswsAlive==false&&socket.readyState==WebSocket.CLOSED){++reConCount;console.log("reconnect web socket, times: "+reConCount+", go");this.ensureWebSocket();}else console.log("reconnect web socket, times: "+reConCount+", pass");}