是否可以将websocket重新连接到其他主机?

时间:2013-04-12 20:46:16

标签: javascript websocket socket.io

使用socket.io,我有:

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

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

1 个答案:

答案 0 :(得分:3)

我个人知道没有简单的方法可以做你想做的事情,但是为了减少事情的复杂性,你可以保存旧套接字的监听器,连接其他地方,然后转移旧的监听器。

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

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

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

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

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

socket.$events = listeners;

然后你有一个新的套接字对象,但用这个方法重新连接事件处理程序并不是太乱。