http - WebSocket-Sharp 不响应公共 IP 地址
问题描述
我在公共互联网 IP 上托管 WebSocket-Sharp 时遇到问题。在本地它工作正常。此问题发生在 Windows 和 Linux 上。我没有收到超时或 HTTP 状态代码,页面立即阻塞。我 99% 确定我正确设置了端口转发;我尝试过使用 Android 调制解调器、VPN 和常规 NAT 路由器设置。
我尝试了以下组合:
192.168.1.2:80 8080 5000 39393
0.0.0.0:....
公网IP:……
解决方案
问题在于 WebsScketSharp 提供的 HttpServer。纯 websocket 变体 (WebSocketServer.cs),而不是具有 Get 功能的 HttpServer 选项,具有将 AllowForwardedRequest 设置为 true 的选项,因此可以从非 localhost 地址访问。HttpServer 类不支持这一点。它是部分解决方案,因为我放弃了常规的 GET 功能,但这对我来说很好。