我写了一个简单的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)。有一些改善,但仍然断开
Thanks in advance.
我觉得这像是代理问题。使用安全连接(wss://
)并检查它是否变得更好。基本上,如果你的一些客户端在代理之后,WebSocket连接可能会以许多意想不到的方式出错。
Web Sockets如何与代理服务器交互