本文へスキップ

WebSocketテスター

WebSocket Tester

WebSocket接続を開き、自分で組み立てたフレームを送って、受け取ったものを時刻付きで記録します。

ブラウザから指定したサーバーへWebSocketを開き、入力したものを送り、双方向のフレームを時刻付きで記録します。接続はブラウザ自身のもので、こちらのサーバーは通りません。だから自分の機械の開発用の口も、公開サーバーと同じように扱えます。

🔒 ブラウザの中だけで動きますwebsockettestrealtimedebug

ブラウザが自分で接続します。アドレスも、送受信した中身も、当方のサーバーは通りません。

このページは https で配信されているため、暗号化されない ws:// は混在コンテンツとしてブラウザに止められます。wss:// を使うか、開発サーバーをローカルの http で開いてください。

カンマ区切りです。Sec-WebSocket-Protocol ヘッダーで提示し、サーバーが一つ選びます。

ブラウザが送れるのは 1000 か 3000–4999 だけです(RFC 6455 §7.4)。

待機中

送信

ログ

受信フレームは ▼、送信は ▲。時刻は最初の記録からの経過です。

まだ何もありません。

  • ブラウザの WebSocket API は ping や pong のフレームを自分で送れず、独自ヘッダーも付けられません。認証が要る場合は、最初のメッセージ、URL のクエリ、あるいは subprotocol にトークンを載せるのが慣例です。

使い方

  1. wss:// のアドレスを入れます

    このページはhttpsで配られているので、平文のws://はブラウザが混在コンテンツとして遮断します。サブプロトコルを一緒に提示でき、サーバーが選んだものを記録に書きます。

  2. フレームを送ります

    正しいJSONは送る前に1行に詰めるので、整形されたメッセージを貼り付けても、クライアントが送る形で出ていきます。JSONでないものは入力したそのまま出ます。

  3. 記録を方向と時刻で読みます

    受信は▼、送信は▲、イベントは●で、それぞれ最初の記録からの経過時間が押されます。まったく答えなかったサーバーと、遅れて答えたサーバーを見分ける方法がこれです。

  4. 必要ならコードを決めて閉じます

    ブラウザが送れるのは1000か3000–4999だけです(RFC 6455 §7.4)。アプリケーションが決めるコードはその範囲に置きます。返ってきた終了コードは言葉で書き下します。

よくある質問

Authorizationヘッダーを付けられますか

ブラウザからはできません。WebSocketのAPIは独自ヘッダーをまったく許していません。慣例は、最初のメッセージ、URLのクエリ、あるいはサブプロトコルに紛れ込ませる形でトークンを渡すことで、どれにするかはサーバーが決めます。

1006で閉じて理由がありません

1006は終了フレームなしで接続が切れたという意味です。サーバーが落ちたか、途中のプロキシがタイムアウトしたか、ハンドシェイクが拒否されたかです。ブラウザは安全のために理由をわざと伏せるので、答えはここではなくサーバーのログにあります。

pingフレームを送れますか

送れません。ブラウザがpingに自動で答え、ページから送る手段は与えられていません。ハートビートが必要なアプリケーションは、普通のメッセージを送ってサーバーの応答に頼ります。

やり取りはそちらのサーバーを通りますか

通りません。ブラウザが直接つなぐので、アドレスもすべてのフレームも、あなたとそのサーバーのあいだにだけあります。おかげでlocalhostの口もここで扱えます。サーバー側で動く試験ツールでは決して届かない場所です。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。