WebSocket接続の確立とアドレスの検証
「WebSocket テスト クライアント」は、指定されたWebSocketサーバーへの接続を確立し、リアルタイムでの通信テストを可能にするツールです。接続プロセスは、ユーザーが「接続する」を選択したときにのみ開始されます。
接続を試みる際、ツールは入力されたアドレスに対して以下の検証ルールを適用します。
- スキームの制限: 本ツールは
ws://またはwss://スキームのみをサポートしています。これら以外のスキームが使用された場合、「ws:// または wss:// アドレスを使用します。」というエラーメッセージが表示されます。 - 不完全なアドレス: 入力されたアドレスが完全なWebSocketアドレスではない場合、「wss://example.com/socket などの完全なWebSocket アドレスを入力します。」と表示されます。
- アドレスの長さ: 入力可能なアドレスは最大2,048文字です。この制限を超えた場合は、「そのアドレスは異常に長いです。 2,048 文字以下に保ってください。」と表示されます。
接続処理中のステータスやエラーは以下のように表示されます。
- 接続試行中は「
‹address›に接続中…」と表示されます。 - サーバーが10秒以内に接続をオープンしない場合、「サーバーは 10 秒以内に接続をオープンしませんでした。」と表示されます。
- 接続に失敗した場合は、「接続に失敗しました。アドレス、証明書、サーバーの可用性、およびブラウザーのアクセス ルールを確認してください。」という旨のエラーが表示されます。
- 接続が正常に確立されると、メッセージログに「
‹address›に接続されています。」と表示されます。
メッセージの送信と文字数制限
接続が確立された後、ユーザーはWebSocketサーバーへテキストメッセージを送信できます。
メッセージ送信に関する仕様と制限は以下の通りです。
- 送信方法: メッセージ入力欄にテキストを入力し、Ctrl+Enter または Command+Enter を押すことでメッセージを送信できます。一度に送信できるテキストメッセージは1つのみです。
- 未接続時の制限: サーバーに接続していない状態でメッセージを送信しようとすると、「メッセージを送信する前に接続してください。」と表示されます。
- メッセージサイズ制限: 送信できるメッセージは最大100,000文字です。この制限を超えると、「そのメッセージは異常に大きいです。 100,000 文字以下に保ってください。」と表示されます。
メッセージログと表示制限
メッセージログには、発生したイベントや送受信されたメッセージが時系列でリスト表示されます。ログ内の各エントリには、対応するラベルや詳細情報が付与されます。
- 送信済み: クライアントから送信されたメッセージを示します。
- 受け取りました: クライアントが受信したメッセージを示します。
- イベント: 接続に関連するイベントを示します。
- テキスト: テキストメッセージであることを示します。
- バイナリメッセージ: バイナリメッセージを受信した際、このラベルとともに「バイト」単位でそのサイズが表示されます。
ログのパフォーマンスと視認性を維持するため、以下の制限と自動処理が適用されます。
- ログ件数の制限: メッセージログに保持されるエントリは最大500件です。これを超えると、「このページの応答性を維持するために、
‹count›の古いログ エントリが削除されました。」と表示され、古いエントリから順に削除されます。 - 文字数の制限: 1つのログエントリに表示される文字数は最大20,000文字です。これを超える長いエントリは切り捨てられ、「このプレビューでは、
‹count›より多くの文字が非表示になります。」と表示されます。 - ログのクリア: 「ログをクリアする」を実行すると、表示されているログエントリのみが消去されます。この操作によって接続が切断されたり、送信・受信のメッセージカウントがリセットされたりすることはありません。
接続の終了とクローズステータス
WebSocket接続が終了すると、ツールは接続状態の変化を検知し、詳細な終了情報をログに出力します。
接続終了時には、メッセージログに「コード ‹code› (‹clean›) でクローズされました。理由: ‹reason›」と表示されます。
- コードを閉じる: 接続が終了した理由を示す数値コードが表示されます。
- クリーンクローズステータス: 接続が正常に終了したかどうかに応じて、「きれいな」または「きれいではない」のいずれかのステータスが表示されます。
- 終了理由: サーバーから提供された終了理由テキストが表示されます。サーバーから理由が提供されなかった場合は、「理由が提示されていない」と表示されます。
ブラウザ環境における技術的制限
本ツールはブラウザ上で動作するため、ブラウザのWebSocket APIに起因する以下の技術的制限が存在します。
- カスタムヘッダーの制限: 接続時にカスタムハンドシェイクヘッダーを追加することはできません。
- セキュリティとアクセスルール: 証明書エラーをバイパスすることや、サーバー側が設定しているアクセスルールをオーバーライドすることはできません。
- 低レイヤーデータの非表示: ネットワークレベルのフラグメント(断片化されたメッセージ)や、PingおよびPong制御フレームを検出・表示することはできません。
プライバシーとデータ処理方針
本ツールを利用する際のデータ処理およびプライバシーに関する方針は以下の通りです。
- データの非保存: 入力されたアドレスや送信メッセージなどのデータは、BroBroGoにアップロードされたり、このページに保存されたりすることはありません。
- 直接通信: アドレスおよびメッセージは、ユーザーのブラウザから指定されたWebSocketサーバーへ直接送信されます。
- 機密データの取り扱い: 接続する前に、個人識別情報や法的、財務、健康に関する機密情報を削除することが推奨されます。本ツールは、送信先となる外部サーバー側でのログ記録やデータ保持ルールを制御することはできません。
よくある質問(FAQ)
ここではどの WebSocket データを検査できますか?
ブラウザによって公開された各テキストまたはバイナリ メッセージ、その方向、時間、サイズに加えて、最終クローズ コード、理由、クリーンクローズ ステータスを確認できます。ブラウザー ページは、ネットワーク レベルのフラグメントや Ping および Pong 制御フレームを公開できません。
アドレスが他の場所で機能する場合でも、接続が失敗するのはなぜですか?
安全なページでは、ブラウザーに wss:// が必要な場合があります。サーバーはブラウザ接続とページのオリジンも受け入れる必要があります。このクライアントは、カスタム ハンドシェイク ヘッダーを追加したり、証明書エラーをバイパスしたり、サーバーのアクセス ルールをオーバーライドしたりすることはできません。
本番データや機密データを使用してテストできますか?
可能な限り合成データを使用してください。送信する前に、名前、アカウントの詳細、法的記録、財務情報、健康情報を削除してください。メッセージは選択したサーバーに送信されますが、そのログ記録と保持ルールはこのページの制御の対象外です。