SockJSとは

SockJSはオープンソースのJavaScriptライブラリで、WebSocket風のAPIを提供しながら、WebSocketが利用できない場合は自動的に代替トランスポートにフォールバックします。企業ファイアウォール、古いブラウザ、接続アップグレードに対応していないロードバランサーなど、WebSocket接続がブロックされる環境での使用を想定して設計されました。SockJSは利用可能な最適なトランスポートを自動的にネゴシエートし、WebSocket、HTTPストリーミング、HTTPロングポーリング、その他複数のメカニズムから選択します。

SockJSは互換性のあるサーバー側ライブラリ(SockJS-NodeやSpringのSockJS対応など)を必要とし、独自のサブプロトコルを使用するため、プレーンなWebSocketエンドポイントには接続できません。

ツールの説明

このツールはブラウザベースのSockJSクライアントを提供します。SockJSサーバーエンドポイントのURLを入力して接続し、テキストメッセージを作成して、タイムスタンプ付きのメッセージログですべてのトラフィックを監視できます。アクティブなトランスポート名(例:websocketxhr-streamingxhr-polling)はリアルタイムで表示され、ライブラリがどのフォールバックメカニズムを選択したかを確認できます。

機能

  • 自動トランスポートネゴシエーション — 利用可能な最適なトランスポートで接続し、選択されたものを表示します。
  • ライブメッセージログ — すべての受信メッセージと接続イベントがタイムスタンプ付きでキャプチャされ、簡単に検査できます。
  • テキストおよびJSONモード — ペイロードをプレーンテキストまたは構造化JSONで作成でき、構文ハイライトと検証に対応しています。

オプションの説明

サーバーURL — SockJSエンドポイントのHTTP(S) URL(例:https://example.com/sockjs)。/websocketやトランスポートサフィックスは追加しないでください。SockJSはパスネゴシエーションを内部で処理します。

トランスポート — 接続が開いた後、出力エリアに表示されます。一般的な値にはwebsocket(直接アップグレード成功)、xhr-streaming(XHR経由のストリーミング)、xhr-polling(従来のロングポール)が含まれます。このフィールドは接続が確立されるまで空白のままです。

データタイプテキストJSONの作成モード間で切り替えます。JSONモードは送信前にペイロードを検証します。

自動スクロール — メッセージログを最新のエントリに固定します。

動作方法

クライアントはSockJS JavaScriptライブラリを使用してターゲットサーバーへの接続を開きます。SockJSはサーバーに情報リクエストを実行してサポートされているトランスポートを検出し、最適なオプションをネゴシエートします。接続後、ツールはSockJSのsendメソッドを通じてすべての送信メッセージをリレーし、サーバーから返されるすべてのonmessageイベントをログに記録します。

ヒント

  • SockJSサーバーは通常、/sockjs/wsなどのパスでエンドポイントを公開しています。正しいベースURLについてはサーバードキュメントを確認してください。
  • トランスポートがwebsocketではなくxhr-pollingを表示している場合、サーバーまたはプロキシがWebSocketアップグレードをブロックしている可能性があります。
  • SockJSはプレーンなWebSocketエンドポイントと互換性がありません。標準的なWebSocketサーバーの場合はWebSocket Test Clientを使用してください。