javascript - 使用 websocket 时的奇怪行为

标签 javascript c# html iis websocket

我写了一个简单的 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 - 使用 websocket 时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39351273/

相关文章:

javascript - 将 SVG 转换为 PDF javascript mermaid.js 示例时出现奇怪的输出

c# - 如果构造函数抛出异常,是否调用析构函数?

c# - 用泛型对象初始化非泛型对象

javascript - kendo ui数据源过滤器 "in"

javascript - 如何将客户端TimezoneOffset放入初始请求中?

javascript - 如何让输入字段在提交后添加文本

c# - C# 中的索引与内存一起使用

javascript - 自动播放 HTML5 音频元素和动画

javascript - 如何根据满足条件弹出图像

html - href 链接内跨度上的不同颜色