Код1006
закрытия - это специальный код, который означает, что соединение было закрыто ненормально (локально) реализацией браузера.
Если ваш браузер-клиент сообщает о закрытом коде 1006
, вам следует изучить websocket.onerror(evt)
событие, чтобы узнать подробности.
Однако Chrome редко сообщает о 1006
причинах закрытия кода на стороне Javascript. Вероятно, это связано с правилами безопасности клиента в спецификации WebSocket для предотвращения злоупотребления WebSocket. (например, его использование для сканирования открытых портов на целевом сервере или для создания большого количества соединений для атаки типа «отказ в обслуживании»).
Обратите внимание, что Chrome часто сообщает о 1006
закрытом коде, если во время HTTP-обновления до Websocket возникает ошибка (это шаг перед технически «подключением» WebSocket). По таким причинам, как неправильная аутентификация или авторизация, или неправильное использование протокола (например, запрос подпротокола, но сам сервер не поддерживает тот же подпротокол), или даже попытка поговорить с расположением сервера, которое не является WebSocket ( например, попытка подключиться к ws://images.google.com/
)
По сути, если вы видите закрытый код 1006
, у вас есть ошибка очень низкого уровня с самим WebSocket (похожая на «Невозможно открыть файл» или «Ошибка сокета»), не предназначенная для пользователя, поскольку указывает на проблему низкого уровня. с вашим кодом и реализацией. Устраните проблемы низкого уровня, а затем, когда вы подключитесь, вы можете включить более разумные коды ошибок. Вы можете добиться этого с точки зрения масштаба или серьезности вашего проекта. Пример: информация и уровень предупреждений являются частью конкретного протокола вашего проекта и не приводят к разрыву соединения. При создании отчетов о серьезных или фатальных сообщениях также используется протокол вашего проекта, чтобы передать столько деталей, сколько вы хотите, а затем закрывать соединение, используя ограниченные возможности потока закрытия WebSocket.
Имейте в виду, что коды закрытия WebSocket очень строго определены, а длина фразы / сообщения причины закрытия не может превышать 123 символа (это намеренное ограничение WebSocket).
Но не все потеряно, если вам просто нужна эта информация для отладки, подробности закрытия и его основная причина часто сообщаются с достаточным количеством деталей в консоли Javascript Chrome.