当我在C#中使用WebSocket服务器,并在本地PC上访问它时,它工作正常。但是当我尝试用另一台电脑访问时,它不起作用。
我正在使用 Fleck 的 WebSocket 库。
C# WebSocket 服务器中的代码:
_server = new Fleck.WebSocketServer("wss://127.0.0.1:8181");
_server.Certificate = new X509Certificate2(@"C:\test.com.pfx", "123");
HTML/Javascript 代码:
websocket = new WebSocket('wss://192.168.1.37:8181');
当我使用不安全的 WebSocket“ws://127.0.0.1:8181”时,当我尝试访问本地 IP“ws://192.168.1.37:8181”时,Chrome 控制台会发送错误:
The page at 'https://www.websocket.org/echo.html' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://192.168.1.37:8181/?encoding=text'. This request has been blocked; this endpoint must be available over WSS.
当我使用安全 WebSocket“wss://127.0.0.1:8181”时 它发送错误:
WebSocket connection to 'wss://192.168.1.37:8181/?encoding=text' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
仅当我在 WebSocket 客户端中输入“wss://127.0.0.1:8181”时才有效,但我想使用标准 IP,以便其他 PC 访问。
最佳答案
我找到了解决方案,如果有人需要,这里是步骤:
您需要按如下方式启动 Fleck WebSocket 服务器:
_server = new Fleck.WebSocketServer("wss://0.0.0.0:8181");
_server.Certificate = new X509Certificate2(@"C:\test.com.pfx", "123");
然后在想要通过WebSocket客户端访问的PC上,需要先用浏览器访问:
https://192.168.1.37:8181
然后您允许访问。 (它将允许未知用户的认证)
之后你的WebSocket客户端就可以工作了。
关于c# - 如何在一台服务器上使用WebSocket并在同一局域网内的另一台PC上访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58503692/