Websockets至少在一台机器上工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Websockets至少在一台机器上工作相关的知识,希望对你有一定的参考价值。
我有一个使用websockets的应用程序。 Web服务器是glassfish 4.1.1,我们使用@ServerEndpoint作为服务器端的websockets实现。
在所有计算机上,一切都运行正常,当时在某个客户的一台笔记本电脑上我们收到了错误(他使用谷歌浏览器):
无法在websocket上执行'send':仍处于CONNECTING状态
在该计算机上,此错误会永久显示,从而阻止涉及websockets的所有功能。
我们没有为websockets设置特定端口。所以我假设他们使用默认的--80。其他页面成功加载(因此,我们的网站可以从该笔记本电脑访问)。
你有什么关键在哪里挖?为什么只有一台笔记本电脑是否需要提供更多信息?
先感谢您!
答案
可能是很多事情:
- 火墙
- 反病毒
- Chrome标记(如运行:chrome.exe --disable-web-sockets)
- 病毒/恶意软件
- 中间人(MitM)
我建议安装Firefox。如果Firefox没有问题,那么Chrome肯定存在问题。
另一答案
我有同样的问题。检查您尝试从前端应用程序连接的端口是什么(您的套接字必须被指定为端口)。我的WS服务器正在侦听PORT 8080,一些用户阻止了传出端口。我从80到8080创建了一个代理,现在所有用户都可以访问。
以上是关于Websockets至少在一台机器上工作的主要内容,如果未能解决你的问题,请参考以下文章
为啥 django sqlite3 数据库在一台机器上与另一台机器上的工作方式不同?
从在一台机器上工作的浏览器下载 S3 图像并在另一台机器上给出 CORS 错误