Дело в том, что сегодня используются две основные версии протоколов WebSockets.Старая версия, которая использует протокол [0x00][message][0xFF]
, а затем новая версия, использующая пакеты в формате Hybi .
Старая версия протокола используется Opera и iPod / iPad / iPhones, поэтомуНа самом деле важно, чтобы в серверах WebSockets была реализована обратная совместимость.В этих браузерах, использующих старый протокол, я обнаружил, что обновление страницы, переход от страницы или закрытие браузера приводят к тому, что браузер автоматически закрывает соединение.Отлично !!
Однако в браузерах, использующих новую версию протокола (например, Firefox, Chrome и, в конечном итоге, IE10), только закрытие браузера приведет к тому, что браузер автоматически закроет соединение.То есть, если вы обновите страницу или уйдете со страницы, браузер НЕ автоматически закроет соединение.Однако, что делает браузер, так это отправляет пакет hybi на сервер с первым байтом (идентификатор протока), равным 0x88
(более известным как закрытый фрейм данных).Как только сервер получит этот пакет, он может принудительно закрыть само соединение, если вы того пожелаете.