javascript - Changing server from client-side on Socket.io -
this first question on website. lot of questions on google have been answered site, can't find answer question, or can't think of right way post question.
i have 3 socket.io servers should change clicking different buttons. thought this: var pot_bot = io('12.12.12.12:3222'); pot_bot.on('action', function(data) { console.log('unique data '+data.hi);}); if(button1.clicked) pot_bot = io('12.12.12.12:3223');
everything correct, problem when override variable pot_bot .on('action') called when new server emits it. isn't case code example above.
does have solution this?
i suggest removing event listener old manager before overwriting pot_bot , binding new listener new one. (io caches managers if every switch old manager back, , if keep adding listener, without ever removing them, duplicate listeners on same manager). can put in function don't have repeat code:
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' );
Comments
Post a Comment