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

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -