Как поймать ERR_CONNECTION_REFUSED, брошенную браузером, если сервер идет вниз?
Я думаю, что этот вопрос довольно прост, но я еще не нашел ответа в официальном Socket.io docs.
У меня успешно работает мой сервер и клиент Socket.io, и когда я закрываю сервер, клиент попытается восстановить соединение с сервером безуспешно. Это показано в консоли разработчика Chrome здесь:
![enter image description here]()
Есть ли способ обнаружить это событие в Javscript на стороне клиента и как-то отреагировать на него? Я думаю, что я бы отобразил диалоговое окно на странице, например "Извините, сервер находится под большой нагрузкой" и т.д.
Ответы
Ответ 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
});