Закрити код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.