Javascript 在Socket.io上从客户端更改服务器

Javascript 在Socket.io上从客户端更改服务器,javascript,socket.io,Javascript,Socket.io,这是我在这个网站上的第一个问题。多亏了这个网站,我在谷歌上的很多问题都得到了回答,但我找不到我的问题的答案,或者我就是想不出发布问题的正确方法 我有三个Socket.IO服务器,可以通过单击不同的按钮进行更改。 我的想法是: var pot_bot=io('12.12.12.12:3222'); pot_bot.on('action',function(data){console.log('unique data'+data.hi);}); 如果(按钮1.点击)pot_bot=io('12.12

这是我在这个网站上的第一个问题。多亏了这个网站,我在谷歌上的很多问题都得到了回答,但我找不到我的问题的答案,或者我就是想不出发布问题的正确方法

我有三个Socket.IO服务器,可以通过单击不同的按钮进行更改。 我的想法是:
var pot_bot=io('12.12.12.12:3222');
pot_bot.on('action',function(data){console.log('unique data'+data.hi);});
如果(按钮1.点击)pot_bot=io('12.12.12.12:3223')

一切都是正确的,问题是当我重写变量pot_bot时,我希望在新服务器发出.on('action')时调用它。上面的代码示例并非如此


有人对此有解决方案吗?

我建议先从旧管理器中删除事件侦听器,然后再覆盖
pot\u bot
,然后将新的侦听器绑定到新的侦听器。(io缓存管理器,因此,如果每次切换都返回旧的管理器,并且如果继续添加侦听器,而不删除它们,则会在同一个管理器上获得重复的侦听器)。您可以将其全部放在一个函数中,这样就不必重复代码:

function switch_to_server( new_uri ) {
    pot_bot && pot_bot.removeListener( 'action' );

    pot_bot = io( new_uri);
    pot_bot.on('action', function(data) { console.log('unique data '+data.hi);});
}

if ( button1.clicked )
    switch_to_server( '12.12.12.12:3223' );