Spec-Zone.ru › Socket.IO 4

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

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 КБ после минификации и сжатия gzip), поэтому он исключен из компактной сборки (подробнее о различных сборках браузера можно найти здесь).

Если вы используете 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/v4/logging-and-debugging

Spec-Zone.ru

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