我需要按字母顺序更改客户端连接的服务器。所以,在我的情况下,客户如果首先连接到同一个服务器:socket.io中的第二个io.connection()不会触发连接事件
var $socket = io.connect("//serverA:5656");
,这成功触发事件代码:
$socket.on('connect', function(data) {
alert('socket connected with id ' + $socket.id);
});
但是,如果后来的代码,我需要改变服务器连接到使用:
$socket = io.connect("//serverB:8900");
connect事件不会触发,即使它似乎产生$ socket.id一个新的值,但是从服务器发出任何这种插座不经过。
我试过几个选项为新服务器的连接,如:这个
$socket.disconnect(true);
$socket = io.connect("//serverB:8900");
$socket.io.reconnect();
$socket.disconnect();
$socket.removeAllListeners('connect');
io.sockets = {};
$socket = io.connect("//serverB:8900");
$socket = io.connect("//serverB:8900", {'forceNew': true});
$socket = io.connect("//serverB:8900", {'force new connection': true});
无(和它们的任意组合)制定。
看起来你再也没有设置过e'connection'事件监听器,对吗? 'io.connect'创建一个新的对象,你永远不会调用'.on('connection',...)',所以它没有'connection'监听器。 – apsillers
我应该在哪里设置?在客户端?你能指出代码示例吗?谢谢! – Luciano