javascript - 是否可以将 websocket 重新连接到不同的主机?

标签 javascript websocket socket.io

使用 socket.io,我有:

var socket = io.connect('//' + Server_Hostname, {secure: true});

如果服务器断开连接,我想尝试重新连接到另一台服务器。如果不通过 io.connect 创建新的套接字对象(因此必须重新连接我的所有事件处理程序),这是否可能?

最佳答案

我个人知道没有简单的方法可以做你想做的事,但为了让事情变得不那么复杂,你可以保存旧套接字的监听器,连接到其他地方,然后转移旧的监听器。

socket.disconnect();
var listeners = socket.$events;

在我们存储了之前套接字的监听器之后,我们可以通过两种方式重新连接。

socket = io.connect(host, {
  'force new connection': true
});

//alternate reconnect method
socket.socket.connect(host);

然后我们可以重新分配旧的监听器对象。

socket.$events = listeners;

然后您确实有一个新的套接字对象,但是使用此方法重新连接事件处理程序并不会太困惑。

关于javascript - 是否可以将 websocket 重新连接到不同的主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15980560/

相关文章:

javascript - 无法在 Node.js 脚本中关闭 postgreSQL 连接

javascript - Firebase/React 查询用户名

javascript - 套接字在Flux单向数据流中的适合位置是什么?

node.js - Socket-io 客户端不断发送连接请求

javascript - 在每个加载和发布的网站上显示加载 gif?

javascript - 设置 cookie 以记住隐藏元素的状态

javascript - AJAX 回合制游戏

Spring Websocket - 如何检测客户端断开连接

java - 如何更正带注释的 websocket 类的路径?

javascript - 在socket.io中的每个连接的客户端上显示光标