ClientWebSocket wss - 无法连接到远程服务器

Posted

技术标签:

【中文标题】ClientWebSocket wss - 无法连接到远程服务器【英文标题】:ClientWebSocket wss - Unable to connect to the remote server 【发布时间】:2021-05-04 08:42:06 【问题描述】:

我在 NodeJs 中创建了一个 WebSocket 服务器并将其托管在 GCP 上。服务器的 URL 是 wss://scramblegram.bluemsoftware.com

我使用 ClientWebSocket C# core 5.0 创建了一个 WebSocket 客户端。

这是我的问题

如果我使用客户端 ClientWebSocket 连接到 wss://scramblegram.bluemsoftware.com,我会收到“无法连接到远程服务器”

如果我使用https://www.websocket.org/echo.html 连接到 wss://scramblegram.bluemsoftware.com,它将完美运行。

如果我使用我的客户端 ClientWebSocket 连接到 wss://echo.websocket.org,它会完美运行。

有人可以解释发生了什么以及如何调试和解决这个问题吗?没有意义

[编辑] 代码 https://github.com/endel/NativeWebSocket/blob/master/NativeWebSocket/Assets/WebSocket/WebSocket.cs

WebSocket ws = new WebSocket("wss://scramblegram.bluemsoftware.com"); 等待 ws.Connect();

【问题讨论】:

【参考方案1】:

请将代码发布到您的自定义 C# Web Socket 客户端... 如果没有看到您的代码,我们将无法提供帮助。

好吧,很多事情可能都是错的。可能是远程主机位于阻止您的 Web 套接字客户端计算机的 防火墙 后面... 或 TLS 版本问题。很多事情都可能是错误的。所以很难说。

如果您检查消息并且信息不够丰富,我也会建议您尝试检查您正在使用的 Web 套接字客户端的 Github 页面以查找相关问题。

但很可能,远程防火墙正在阻止来自您本地计算机的请求。

这是我的想法。

【讨论】:

我正在使用这个库,它在内部使用 ClientWebSocket github.com/endel/NativeWebSocket/blob/master/NativeWebSocket/… 我想到了防火墙问题。但这仍然没有意义。防火墙如何阻止我的连接,但当我使用websocket.org/echo.html 连接到我的服务器时它工作正常@ 至于 TLS 版本。我在可以连接的客户端和不能连接的客户端之间检查 Wireshark 上的 TLS 版本。并且 TLS 版本是相同的,即 1.2 这意味着它没有阻止 websocket.org/echo.html 这不合逻辑,但请尝试关闭本地计算机的防火墙并重试。

以上是关于ClientWebSocket wss - 无法连接到远程服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Flutter 连接到 wss

无法连接到 wss [更新]

无法从 https 客户端通过 wss 连接到 emqx mqtt 代理

如何使用 MQTT 连接到 wss?

无法连接到 wss://(连接建立错误:net::ERR_CONNECTION_CLOSED)

棘轮和 WSS 无法正常工作