電腦瀏覽器上沒問題,但是手機上一旦鎖屏后,就會停止發(fā)送心跳,然后就與服務器斷開
<script>
var fromid = 98;
var count = 1;
var toid = 1484553;
var ws = new WebSocket("ws://esp8266.b.com:8282");
ws.onopen = function(){
setInterval(show,10000);//心跳發(fā)送
}
ws.onmessage = function(e){
var message = eval("("+e.data+")");
console.log(message);
switch (message.type){
case "init":
var bild = '{"type":"bind","fromid":"'+fromid+'"}';
ws.send(bild);
return;
}
}
mui.init({
swipeBack:true //啟用右滑關閉功能
});
var isActive = document.getElementById("mySwitch").classList.contains("mui-active");
if(isActive){
console.log("打開狀態(tài)");
}else{
console.log("關閉狀態(tài)");
}
document.getElementById("mySwitch").addEventListener("toggle",function(event){
if(event.detail.isActive){
console.log("你啟動了開關");
var message = '{"data":"on","type":"say","fromid":"'+fromid+'","toid":"'+toid+'"}';
ws.send(message);
}else{
console.log("你關閉了開關");
var message = '{"data":"off","type":"say","fromid":"'+fromid+'","toid":"'+toid+'"}';
ws.send(message);
}
})
function show(){
ws.send('{"type":"pong"}');
}
</script>
手機黑屏或者后臺后app的網(wǎng)絡連接就被關閉了,app也暫停了,所以不能發(fā)送心跳了。
監(jiān)聽下ws.onclose ,在里面重新發(fā)起連接重連下