情况是这样的,我自己本身写过一个Webscoket,然后单页情况下没问题,因为服务器有时候要跳整,容易断,所以弄了个重连机制,原理就是在onclose的情况下重新连接一下,后来发现如果多开一个页面,第二个页面就会不断的重连,搞不懂怎么回事,现在用了ReconnectingWebSocket这个小插件,也是这样的情况,代码如下:
function Webscoket() {      //Scoket传输 var websocket = new ReconnectingWebSocket("ws://39.xxxxx/WeChatxxxScoket.php"); websocket.onopen = function(evt) { 
console.log(ws.readyState);
}; websocket.onmessage = function(data){     var result = JSON.parse(data.data);      switch(result.type) {   //处理各类信息        case 'system':             Scoket = result.Scoket;   //Scoket唯一ID
            if(getCookie("ChatId"))
            {
            var login_data =  {
              type: "login",
              ChatId:getCookie("ChatId"),
              Scoket: Scoket
            };
        }
        else
        {
            var login_data =  {
              type: "login",
              Scoket: Scoket
            };    
        }         ws.send(JSON.stringify(login_data));
            console.log("websocket握手成功,发送登录数据:");
            break;
            case 'login':
             AdminScoket = result.Admin;
             Scoket = result.Scoket;
             setCookie("ChatId",Scoket);               $.ajax({
            url:"WebchatAdmin.php?act=ajaxlist",
            type:"POST",
            data:{order_sn:Scoket},
            success:function(res){              ListMessage(JSON.parse(res));
            }
        });
             console.log(result);
             break;
         case 'message':
         console.log(result);
         AddMessage(result);
         break;
    }
}; websocket.onerror = function(error){     console.log(error);
}; websocket.onclose = function(evt) { console.log("closed");
}; return websocket;}我快疯了,求帮助,谢谢