Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How configure reconnecting in socket.io?

I create socket.io connection with next code

var socket = new io.connect('http://localhost:8181', {     'reconnect': true,     'reconnection delay': 500,     'max reconnection attempts': 50 }); 

But when I kill server CTRL+C and start it again, reconnection isn't happening. But disconnect event raised on client side. What maybe reason of it?

like image 941
Dmitro Avatar asked Jul 24 '12 14:07

Dmitro


People also ask

Does Socket.IO auto reconnect?

In the first case, the Socket will automatically try to reconnect, after a given delay.

How do you check if socket IO client is connected or not?

You can check the socket. connected property: var socket = io. connect(); console.


2 Answers

This is an old question, but for other people like me, who are looking how to configure reconnect in socket.io (1.x) here is a correct syntax:

var socket = new io.connect('http://localhost:8181', {     'reconnection': true,     'reconnectionDelay': 1000,     'reconnectionDelayMax' : 5000,     'reconnectionAttempts': 5 }); 
like image 121
Salvador Dali Avatar answered Sep 19 '22 02:09

Salvador Dali


I realise this is an old question, but I've been having some trouble with socket io reconnecting and found this post high in the search results, so thought I would contribue. Try debugging exactly which events are firing using the following code:

# coffeescript. compile if you're writing javascript, obviously.  socket.on 'connect',-> console.log 'connected' socket.on 'reconnect',-> console.log 'reconnect' socket.on 'connecting',-> console.log 'connecting' socket.on 'reconnecting',-> console.log 'reconnecting' socket.on 'connect_failed',-> console.log 'connect failed' socket.on 'reconnect_failed',-> console.log 'reconnect failed' socket.on 'close',-> console.log 'close' socket.on 'disconnect',-> console.log 'disconnect' 

This should give you more insight into the state of the client socket.

Also, try looking in the Network tab of your web inspector to see if it is firing XHR requests as a fallback. Finally, in your web console, try typing io.sockets and expand it out to see whether it is actually trying to reconnect or not.

I have encountered problems with reconnect_failed not firing, and the reconnect tally not resetting. The following are links to discussions of these issues on github.

reconnection delay - exponential back off not resetting properly

reconnect_failed gets never fired

some potential fixes/workarounds

like image 41
captainclam Avatar answered Sep 18 '22 02:09

captainclam