我写了一个简单的 websocket 服务器/客户端。 服务器是使用C#(System.Net.WebSockes)编写的,客户端是javascript (虽然服务器技术是无关紧要的,因为我已经用signalr对其进行了测试,并且在websocket传输的握手过程中得到了相同的错误)。 问题是:
1-在某些客户端上,我可以轻松连接到服务器并且工作得很好。
2- 在其他一些客户端上,我在握手期间收到错误代码 1006 在这些客户端中,当我打开 PSiphon 等代理应用程序时,它可以连接到服务器。但是,它会在大约 6 秒后断开连接。
我真的非常困惑,最后经过几个小时的尝试,我决定在这里提出一个问题。 我不认为它与代码有关,但我还是把它放在这里。
var url = 'ws://' + location.host + '/socket';
var socket = new WebSocket(url);
更新1:我已经联系了系统管理员(托管公司),他们说这可能是因为客户的ISP。如果是这种情况,我将不胜感激任何提示,以确保是否有某种代理服务器导致了麻烦?
更新 2: 正如 @vtortola 提到的,我创建了一个自签名证书并添加到网站(IIS 和 Plesk)。有一些改进,但仍然断开连接
提前致谢..
最佳答案
对我来说,这像是代理问题。使用安全连接 (wss://
) 并检查它是否变得更好。基本上,如果您的某些客户端位于代理后面,则 WebSocket 连接可能会以许多意想不到的方式出现异常行为。
关于javascript - 使用 websocket 时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39351273/