web-dev-qa-db-ja.com

Google Chromeでwebsocketを一時的に無効にするにはどうすればよいですか?

Googleでwebsocketを一時的に無効にします。Chrome= javascriptをデバッグして、websocketがサポートされていないブラウザで動作することを確認します。

40
Cygan

まず、Websocketless環境でJavaScriptをテストするためのより良いメカニズムがあると思います。たとえば、プロトコルを実装していないIE9でJavaScriptを実行できます。 Firefox 4でも、それがあなたのスタイルであれば、今のところまだ無効になっています。

ウェブソケットのないChromiumでテストする必要のある正当な理由があると仮定すると、あなたは運が悪いと思います。 ChromiumでWebSocketを無効にする簡単なメカニズムはありません。コマンドラインスイッチとして組み込まれておらず、構成可能なフラグもありません。これをネイティブに実行するメカニズムはないため、シナリオのテストに時間をかけることはお勧めしません。ユーザーが使用するChromiumのすべてのバージョン(9+など)では、Webソケットが有効になっています。

とはいえ、本当にWebSocketを無効にする必要がある場合、ブラウザを再コンパイルせずに取得できる最も近い方法は、テストコードに関連する変数をドロップすることです。

WebSocket = undefined;

比較的力ずくですが、動作するはずです。拡張機能を作成して、訪問するすべてのページにそのJavaScriptを挿入し、真のWebソケットレスエクスペリエンスを実現することもできます(これもユースケースにとって何らかの価値があると仮定します)。

21
Mike West

Fiddler でWebSocketをブロックできました。

Fiddlerメニューの[ルール]/[ルールのカスタマイズ...]に移動します。

このコードをクラスに追加しますHandlers(既存のRulesOption項目の後に配置します):

    // Block Websockets
public static RulesOption("Block Websockets")
BindPref("fiddlerscript.rules.BlockWebsockets")
var m_BlockWebsockets: boolean = false; 

OnBeforeRequestに次のコードを追加します。

    if (m_BlockWebsockets && oSession.oRequest.headers.Exists("Connection") && oSession.oRequest["Connection"] == "Upgrade") {
                oSession.oRequest.FailSession(502, "Blocked", "Fiddler blocked websocket connection");
                return;
            }

これにより、メニューオプションBlock Websocketsが[ルール]メニューに追加されます。オンに切り替えると、Connection:Upgradeヘッダーに基づいてws接続をブロックする必要があります。

7
Debby Mendez