关于ReconnectingWebSocket的连接问题

th_php 2018-02-28 10:49:22
情况是这样的,我自己本身写过一个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;

}

我快疯了,求帮助,谢谢
...全文
1059 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2019-06-12
  • 打赏
  • 举报
回复
引用 1 楼 奥特蛋_mm 的回复:
https://blog.csdn.net/weixin_43254676/article/details/90513127 https://blog.csdn.net/weixin_43254676/article/details/90599550 我也遇到这样的问题了,这是我的解决方案,自己写了博客,希望可以帮到你。
谢谢,虽然我去年已经解决了,忘了结帖了
奥特蛋_mm 2019-06-11
  • 打赏
  • 举报
回复
https://blog.csdn.net/weixin_43254676/article/details/90513127

https://blog.csdn.net/weixin_43254676/article/details/90599550


我也遇到这样的问题了,这是我的解决方案,自己写了博客,希望可以帮到你。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧