Подтвердить что ты не робот

Как поймать ERR_CONNECTION_REFUSED, брошенную браузером, если сервер идет вниз?

Я думаю, что этот вопрос довольно прост, но я еще не нашел ответа в официальном Socket.io docs.

У меня успешно работает мой сервер и клиент Socket.io, и когда я закрываю сервер, клиент попытается восстановить соединение с сервером безуспешно. Это показано в консоли разработчика Chrome здесь:

enter image description here

Есть ли способ обнаружить это событие в Javscript на стороне клиента и как-то отреагировать на него? Я думаю, что я бы отобразил диалоговое окно на странице, например "Извините, сервер находится под большой нагрузкой" и т.д.

4b9b3361

Ответ 1

Правильный способ справиться с этим, начиная с Socket 1.x, заключается в использовании объекта Manager для данного сокета. Он выдает событие connect_error, которое можно обрабатывать, как показано:

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

Ответ 2

Это должно работать:

var socket = io('http://localhost');
socket.on('connect_error', function(err) {
  // notify user
});