使用 socket.io,我有:
var socket = io.connect('//' + Server_Hostname, {secure: true});
如果服务器断开连接,我想尝试重新连接到另一台服务器。如果不通过创建新的套接字对象io.connect
(因此必须重新连接我所有的事件处理程序),这是否可能?
使用 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;
然后,您确实有一个新的套接字对象,但是使用此方法重新连接事件处理程序并不太麻烦。