Chrome: подключение к Интернету не закрывается при закрытии браузера.
Я использую сетевые сокеты Netty, и все работает нормально, кроме этой незначительной проблемы:
Если я закрою браузер/вкладку клиента js websocket, соединение с websocket автоматически закрывается при использовании Mozilla firefox (в настоящее время используется firefox 14), но то же самое не происходит в Chrome 20/21.
Кто-нибудь видел подобную проблему/может кто-нибудь сказать, почему соединение не закрывается автоматически?
Ответы
Ответ 1
Думаю, я должен был проверить это раньше в разделе хромовых ошибок, но я не был уверен, что это ошибка.
Ранее сообщалось об этом, и ошибка хрома уже существует:
Проблема 51687: WebSocket: Отправляйте близко к коду 1001 при перезагрузке/закладке
Обновление: кто-то отправил исправление, чтобы исправить эту проблему, можно увидеть в приведенной выше ссылке.
Ответ 2
Это может быть неверно, но я не могу опубликовать комментарий к вашему вопросу. Chrome/Chromium действительно не закрывается, если у вас есть приложение, и выбрали "Продолжить запуск фоновых приложений, когда Chromium закрыт" из "Настройки" → "Под капотом".
Возможно, он относится к соединению веб-сокетов как к приложению. Попробуйте просмотреть запущенные процессы и уничтожить любой хромированный/хромовый процесс, который вы найдете.
Опять же, это только предположение с моей стороны.
Ответ 3
Chrome не закрывает соединение, когда пользователь закроет окно или браузер.
Это вызовет событие ошибки.
Возможное обходное решение может выглядеть так:
@OnError
public void onErr(Throwable t) {
onClose(this.container.getWsSession(), null);
}
Но это будет закрывать соединение каждый раз, при этом запускается ошибка. Вы не можете проверить бросок, прежде чем закрыть соединение самостоятельно.
Для более подробного обсуждения, пожалуйста, присоединитесь к этому вопросу:
Websocket: Закрытие триггеров браузера onError() в chrome, но onClose() в Firefox