我写了一个简单的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连接可能会以许多意外的方式出现异常。

How HTML5 Web Sockets Interact With Proxy Servers

关于javascript - 使用websockets时的怪异行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39351273/

10-11 22:22
查看更多