Я наблюдал следующее поведение в Firefox 4 и Chrome 7:
Если сервер, на котором работает демон websocket, аварийно завершает работу, перезагружается, теряет сетевое подключение и т. Д., То события onclose или onerror не запускаются на стороне клиента. Я ожидаю, что одно из этих событий будет запущено, когда соединение разорвано по любой причине.
Если, однако, демон сначала корректно отключается, то запускается событие «onclose» (как и ожидалось).
Почему клиенты воспринимают подключение к веб-сокету как открытое, если демон не отключается должным образом?
Я хочу положиться на ожидаемое поведение, чтобы информировать пользователя о том, что сервер стал недоступен или что интернет-соединение клиента нарушено.