当我从澳大利亚连接到德国时,为什么我与 Godot 的安全 websocket 连接失败? 编辑 1:编辑 2:

问题描述

请耐心等待,因为这是我在这个平台上的第一个问题。谢谢。 这是使用 godot (GDScript) 中的安全 websocket 协议 wss:// 的最小服务器的代码

Gist on github

当我从我家连接到我在德国托管的虚拟专用服务器或通过其他位置(例如美国或欧洲)的 VPN 时,它按预期工作。 当朋友从印度或澳大利亚连接时,或者我使用 VPN(例如阿根廷或澳大利亚)复制它时,它无法按预期工作。

index.js:8 WebSocket connection to 'wss://(hidden):port/' Failed: Error in connection establishment: net::ERR_SOCKET_NOT_CONNECTED.

我看起来只有在服务器和客户端之间的物理距离那么长时才会连接失败。

问题可能与 SSL 有关,因为当我使用普通的 websocket 协议时,一切都按预期工作。我从家里和通过 VPN 测试了 openssl -connect 命令:两者都很好。我还在 https://decoder.link/sslchecker/ 上检查了我的 ssl 配置。未检测到任何问题。

这个问题可能与 godot 有关,因为我设置了一个 nodejs 安全 websocket 服务器,即使我从澳大利亚连接,这也有效。

现在我真的不知道如何解决这个问题,所以我请你指出正确的方向。

godot 文档的有用文档:WebSocketServer WebSocketClient

编辑 1:

经过更多的测试,它变得更加混乱: 从印度连接互联网连接时:

WebSocket connection to 'wss://myDomain:port/' Failed: Connection closed before receiving a handshake response
connnetion error
connection close request from server received... client will close the connection
disconnected unexpected

有时它甚至可以工作(当网络不忙时)

从澳大利亚连接时:有时会出现 ERR_SOCKET_NOT_CONNECTEDConnection closed before receiving a handshake response connnetion error 错误

编辑 2:

仅 Firefox 有效,Chrome 或 Native 客户端无效。如果服务器和客户端之间的距离很大,我似乎Firefox可以更好地建立连接。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)