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 错误

php 在一台机器上解析失败,但在另一台机器上解析失败

urllib3.exceptions.NewConnectionError 错误在一台机器上处理但不在另一台机器上

一个人如何确保它们在一台机器上的导轨环境与另一台机器相同?

为啥 Spring 在一台机器上而不是另一台机器上出现循环依赖问题?