Spec-Zone.ru › Socket.IO 3

Ведение журнала и отладка

Socket.IO теперь полностью снабжен минималистичной, но чрезвычайно мощной утилитой под названием debug от TJ Holowaychuk.

До версии 1.0 сервер Socket.IO по умолчанию выводил все сообщения в консоль. Это оказалось излишне подробным для многих пользователей (хотя чрезвычайно полезным для других), поэтому теперь по умолчанию мы полностью молчим.

Основная идея в том, что каждый модуль, используемый Socket.IO, предоставляет различные области отладки, которые дают вам представление о внутренней работе. По умолчанию весь вывод подавляется, и вы можете включить отображение сообщений, задав переменную среды DEBUG (Node.JS) или свойство localStorage.debug (браузеры).

Вы можете увидеть это в действии, например, на нашем главном сайте:

Доступные области отладки

Лучший способ увидеть какую информацию доступно — использовать *.

DEBUG=* node yourfile.js

или в браузере:

localStorage.debug = '*';

А затем фильтровать по интересующим вас областям. Вы можете добавить префикс * с областями, разделенными запятой, если их больше одной. Например, чтобы увидеть только сообщения об отладке от клиента socket.io в Node.js, попробуйте это:

DEBUG=socket.io:client* node yourfile.js

Чтобы увидеть все сообщения об отладке от движка и socket.io:

DEBUG=engine,socket.io* node yourfile.js

Удаление debug из вашего пакета браузера

Хотя это полезно во время разработки, пакет debug добавляет дополнительный вес к конечному пакету (около 4 КБ после минификации и сжатия), поэтому он исключается из облегченного пакета (подробнее о различных пакетах браузера можно найти здесь).

Если вы используете webpack, вы можете удалить его с помощью webpack-remove-debug:

{
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: 'webpack-remove-debug'
      }
    ]
  }
}

Логи ошибок в консоли браузера

Обратите внимание, что логи ошибок, такие как:

  • net::ERR_INTERNET_DISCONNECTED
  • net::ERR_CONNECTION_REFUSED
  • WebSocket is already in CLOSING or CLOSED state
  • Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at xxx. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
  • The connection to xxx was interrupted while the page was loading

не генерируются библиотекой Socket.IO, а браузером, и поэтому находятся вне нашего контроля.

© 2014–2021 Automattic
Licensed under the MIT License.
https://socket.io/docs/v3/logging-and-debugging

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API