代理阻止 websockets?如何绕行

Proxy blocking websockets? How to get round

我有一个用 Python(来自 https://github.com/opiate/SimpleWebSocketServer)编写的 websocket 服务器 运行,当我尝试从家里连接到它时,它工作正常。但是,当我尝试从学校连接到它时,那里有一个网络代理,它无法连接并出现错误 "undefined".

我相信是代理停止了连接,但我不确定如何测试它是否确实如此。我该如何测试它,如果它是代理,我该如何绕过它?

谢谢

许多代理服务器将 HTTP 请求的 headers 替换为自己的。他们将删除任何他们不理解的 headers,因此当代理不支持 websocket 时,它将阻止任何 websocket 握手工作。

作为解决方法,您可以为您的网站获取 TLS 证书并使用 https 和 wss。这会对 headers 进行加密,从而防止代理弄乱它们。

顺便说一下:无论如何你都应该支持 TLS。在当今世界,您不再需要使用加密的充分理由,您需要一个不使用加密的充分理由。