How to reconnect to socket io once disconnect
has been called?
Here's the code
function initSocket(__bool){ if(__bool == true){ socket = io.connect('http://xxx.xxx.xxx.xxx:8081', {secure:false}); socket.on('connect', function(){console.log('connected')}); socket.on('disconnect', function (){console.log('disconnected')}); }else{ socket.disconnect(); socket = null; } }
If I do initSocket(true)
, it works. If I do initSocket(false)
, it disconnects. BUT THEN if I try to reconnect using initSocket(true)
, the connection does not work anymore. How can I get the connection to work?
In the first case, the Socket will automatically try to reconnect, after a given delay.
You can reconnect by following client side config. I don't think forceNew means reconnect. I believe it means to create a new socket each time this statement is called because normally io. connect() will return the same socket if you call it a second time.
listen(port); // Create a Socket.IO instance, passing it our server var socket = io. listen(server); // Add a connect listener socket. on('connection', function(client){ console. log('Connection to client established'); // Success!
You can check the socket. connected property: var socket = io. connect(); console.
Well, you have an option here ...
The first time you initialize the socket value you should connect with io.connect
,
The next time ( after you've called disconnect once ), you should connect back with socket.socket.connect()
.
So your initSocket
, should be something like
function initSocket(__bool){ if(__bool){ if ( !socket ) { socket = io.connect('http://xxx.xxx.xxx.xxx:8081', {secure:false}); socket.on('connect', function(){console.log('connected')}); socket.on('disconnect', function (){console.log('disconnected')}); } else { socket.socket.connect(); // Yep, socket.socket ( 2 times ) } }else{ socket.disconnect(); // socket = null; <<< We don't need this anymore } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With