node.js - Re-Register events in socket.io-client after reconnect -
i have socket.io-client application looks this:
var port = 1234; var host = "http://host.com"; var ioc = require( 'socket.io-client' ); var isconnected = false; var socket; connect(); function connect() { socket = ioc.connect( host + ":" + port); } socket.once( "connect", function () { isconnected = true; console.log( 'client: connected port ' + port ); socket.emit( "status message", "hello server", function ( message ) { console.log( 'echo received: ', message ); }); }); socket.once( "disconnect", function () { isconnected = false; console.log( '[alert]: disconnected server (' + host + ":" + port + ')! '); }); socket.on("reconnect", function(){ console.log('reconntected'); isconnected = true; });
the problem is, after reconnect event getting called, other event never being called again. "disconnect" event never being called after reconnect important me.
use socket.on( "disconnect", function () {...
if want stay registered instead of re-registering it.
you're using .once
implies called once ever.
https://nodejs.org/api/events.html#events_emitter_once_event_listener
emitter.once(event, listener)
adds 1 time listener event. listener invoked next time event fired, after removed.
Comments
Post a Comment