在窗口上禁用websockets

问题描述:

我正在开发一个项目,该项目涉及一个java客户端通过websockets与基于socket.io的服务器进行交互。为了测试从websockets到xhr-polling的回退,我需要在我的Windows主机上模拟一个websocket阻塞。在窗口上禁用websockets

这怎么办?

+0

听起来像东西,你可以在你的防火墙设置 – yhussain 2015-01-31 22:20:28

+1

@yhussain设置 - 种很难因为webSocket请求是作为对正常端口80上的Web服务器的HTTP请求而启动的。实际上,这样设计的一个原因是,它可以与大多数允许Web通信的防火墙配合使用。 – jfriend00 2015-02-01 00:30:15

由于它始终是您的服务器,并且您知道您的服务器始终支持Web套接字,所以您永远不需要担心客户端支持Web套接字但您的服务器不支持的情况。所以,你需要测试的是客户端不支持Web套接字的情况。

您应该可以通过临时更改一行来在客户端JavaScript中创建您的webSocket来限制socket.io只能使用轮询方法的传输。

看到这个问题,它是其他建议的答案:How can i temporarily disable websocket in Google Chrome?

在Windows防火墙中禁用websocket并不是微不足道的。在浏览器中禁用此协议不是一种方法 - 如果您想测试当websocket支持浏览器但是受到防火墙,防病毒,域策略规则阻止时的后备...

我已经通过运行nodejs服务器与grunt连接代理。默认情况下,它会阻止WS://协议,但是你可以很容易使用启用

option.ws =真