Cyg*_*gan 40 google-chrome websocket
我想暂时禁用Google Chrome中的websocket来调试javascript,以确保它适用于没有websocket支持的任何浏览器.
Mik*_*est 21
首先,我要说有更好的机制来测试你在无网页环境中的JavaScript.例如,你可以在IE9中运行你的JavaScript,它没有实现协议.如果这更像你的风格,它们在Firefox 4中仍然暂时被禁用.
假设有一个很好的理由需要在无网页Chromium中进行测试,我认为你运气不好.在Chromium中禁用WebSockets没有一个简单的机制.它不是作为命令行开关内置的,也没有可配置的标志.由于没有机制让这种情况本身发生,我不建议花时间测试这种情况.您的用户使用的每个版本的Chromium(例如9+)都启用了websockets.
总而言之,如果你真的需要禁用websockets,那么在不重新编译浏览器的情况下最接近的就是删除测试代码中的相关变量:
WebSocket = undefined;
会相对蛮力,但应该工作.您甚至可以创建一个扩展,将JavaScript注入您访问的每个页面,以获得真正无websocket的体验(再次假设,这对您的用例来说有点宝贵).
csa*_*ato 14
在看到 @user3661841对另一个问题的回答后,我创建了一个 GreaseMonkey/TamperMonkey 脚本,它允许您以类似的方式禁用 WebSockets。
以下是基于 Chromium 的浏览器(Chrome、Brave、Sidekick 等)的说明:
这是您要单击以禁用/启用 WebSocket 阻止的开关:
注意 1:您应该能够在控制台中看到输出,标记 WebSocket 连接已尝试打开,但被阻止。
注意 2:当您完成禁用 WebSockets 进行开发时,请确保禁用此功能。如果您只使用 TamperMonkey 来禁用 WebSocket,您会希望 TamperMonkey 大多数时候看起来像这样:
当你想阻止时就像这样:
我能够用Fiddler阻止WebSockets .
在Fiddler菜单中转到规则/自定义规则....
将此代码添加到类处理程序(我将其放在现有的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;
            }
这会在"规则"菜单中添加一个菜单选项" 阻止Websockets ".切换时,应根据Connection:Upgrade标头阻止ws连接.
| 归档时间: | 
 | 
| 查看次数: | 34641 次 | 
| 最近记录: |