Что такое SockJS?

SockJS — это библиотека JavaScript с открытым исходным кодом, которая предоставляет API, похожий на WebSocket, с прозрачным переходом на альтернативные транспорты, когда WebSocket недоступен. Она была разработана для сред, где соединения WebSocket блокируются — например, корпоративными брандмауэрами, старыми браузерами или балансировщиками нагрузки, которые не поддерживают обновление соединений. SockJS автоматически выбирает лучший доступный транспорт из WebSocket, HTTP streaming, HTTP long-polling и нескольких других механизмов.

SockJS требует совместимую библиотеку на стороне сервера (например, SockJS-Node или поддержку SockJS в Spring) и использует собственный подпротокол, поэтому не может подключаться к обычной конечной точке WebSocket.

Описание инструмента

Этот инструмент предоставляет клиент SockJS на основе браузера. Введите URL конечной точки сервера SockJS, подключитесь, составьте текстовые сообщения и наблюдайте весь трафик в журнале сообщений с временными метками. Имя активного транспорта (например, websocket, xhr-streaming, xhr-polling) отображается в реальном времени, чтобы вы могли видеть, какой механизм резервного копирования выбрала библиотека.

Возможности

  • Автоматическое согласование транспорта — подключается с лучшим доступным транспортом и показывает, какой был выбран.
  • Журнал сообщений в реальном времени — все входящие сообщения и события соединения фиксируются с временными метками для удобной проверки.
  • Текстовый и JSON режимы — составляйте полезные нагрузки как простой текст или структурированный JSON с подсветкой синтаксиса и валидацией.

Объяснение параметров

Server URL — HTTP(S) URL конечной точки SockJS (например, https://example.com/sockjs). Не добавляйте /websocket или суффикс транспорта; SockJS обрабатывает согласование пути внутри.

Transport — отображается в области вывода после открытия соединения. Типичные значения включают websocket (прямое обновление выполнено), xhr-streaming (потоковая передача через XHR) и xhr-polling (традиционный long-poll). Это поле остаётся пустым до установления соединения.

Data type — переключение между режимами составления Text и JSON. Режим JSON проверяет полезную нагрузку перед отправкой.

Auto-scroll — держит журнал сообщений привязанным к самой последней записи.

Как это работает

Клиент использует библиотеку SockJS JavaScript для открытия соединения с целевым сервером. SockJS выполняет информационный запрос к серверу для обнаружения поддерживаемых транспортов, затем согласовывает лучший вариант. После подключения инструмент передаёт все исходящие сообщения через метод SockJS send и регистрирует каждое событие onmessage, возвращаемое сервером.

Советы

  • Серверы SockJS обычно предоставляют свою конечную точку по пути, например /sockjs или /ws. Проверьте документацию сервера для получения правильного базового URL.
  • Если транспорт показывает xhr-polling вместо websocket, сервер или прокси могут блокировать обновления WebSocket.
  • SockJS несовместим с обычными конечными точками WebSocket. Используйте WebSocket Test Client для стандартных серверов WebSocket.