WebSocketを通過する「トラフィック」を監視できる方法または拡張機能はありますか?デバッグのために、クライアントとサーバーのリクエスト/レスポンスを確認したいと思います。
Chrome開発者ツールには、WebSocketフレームを一覧表示する機能があり、フレームがバイナリでない場合はデータを検査することもできます。
プロセス:
WebSocket接続がバイナリフレームを使用する場合、おそらくWiresharkを使用して接続をデバッグする必要があります。 Wireshark 1.8. WebSocketのディセクタとフィルタリングのサポートを追加しました。代替案はこれにあります その他の回答 。
Chrome CanaryとChromiumにWebSocketメッセージフレーム検査機能が追加されました。すばやくテストする手順は次のとおりです。
注:新しいメッセージを送受信するたびに、左側のecho.websocket.orgエントリをクリックしてメインパネルを更新する必要があります。
スクリーンショットとビデオの手順 も投稿しました。
私が最近出版した本 The Definitive Guide to HTML5 WebSocket には、Chrome Dev Tools、Chrome net-internals、Wire Sharkなどのさまざまな検査ツールに関する専用の付録もあります。
他の回答は、最も一般的なシナリオをカバーしています。フレームのコンテンツを見る(開発ツール->ネットワークタブ-> Websocket接続を右クリック->フレーム)。
どのソケットが現在開いている/アイドル状態であるか、またはそれらを閉じることができるかなど、さらに詳しい情報を知りたい場合は、このURLが役立ちます。
chrome://net-internals/#sockets
ウェブソケットにアクセスしているページがない場合は、Chromeコンソールを開いてJavaScriptを入力できます。
var webSocket = new WebSocket('ws://address:port');
webSocket.onmessage = function(data) { console.log(data); }
これにより、Webソケットが開き、ネットワークタブとコンソールで確認できます。
3つのオプションがあります。Chrome(開発者ツール->ネットワークタブ経由)、Wireshark、およびFiddler(ログタブ経由)ですが、これらはすべて非常に基本的なものです。トラフィックの量が非常に多い場合、または各フレームが非常に大きい場合、それらをデバッグに使用することは非常に困難になります。
ただし、FiddlerとFiddlerScriptを使用して、HTTPトラフィックを検査するのと同じ方法でWebSocketトラフィックを検査できます。このソリューションのいくつかの利点は、複数のインスペクター(HexView、JSON、SyntaxView)など、Fiddlerの他の多くの機能を活用したり、パケットを比較したり、パケットを見つけたりできることです。
CodeProjectに関する私の最近書いた記事を参照してください。これは、Fiddler(FiddlerScriptを使用)でWebSocketトラフィックをデバッグ/検査する方法を示しています。 http://www.codeproject.com/Articles/718660/Debug-Inspect-WebSocket-traffic-with-Fiddler
Chromeバージョン29以降の簡単な回答:
Chrome開発者ツールでは、開いている接続中に保留中のハンドシェイクリクエストを表示できますが、私が知る限りトラフィックを表示できません。ただし、 sniff it などを使用できます。
Simple WebSocket Client v0.1. と呼ばれるChrome拡張機能を使用しました。これはユーザーhakoberaによって公開されています。指定されたURLでWebSocketを開き、メッセージを送信し、ソケット接続を閉じることができるという使い方は非常に簡単です。とてもミニマルです。