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

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -