How to catch ERR_CONNECTION_REFUSED thrown by browser if server goes down?

javascript, node.js, socket.io

Solution

The correct way to handle this, as of Socket 1.x, is to use the Manager object for a given socket. It throws a `connect_error` event that can be handled as shown:

socket.io.on('connect_error', function(err) {
  // handle server error here
  console.log('Error connecting to server');
});

Problem

I think this question is pretty straightforward, but I haven't found an answer yet in the official Socket.io docs. I have my Socket.io server and client communicating successfully, and when I shut down the server, the client will attempt to reconnect with the server unsuccessfully. This is shown in the Chrome developer's console here: Is there any way to detect this event in the client-side Javscript and react to it some way? I'm thinking I would display a dialog on the page, such as "Sorry, server is under heavy load", etc.

Original source

Related problems