我有一个使用websockets的应用程序。Web服务器是glassfish 4.1.1,我们在服务器端使用@ServerEndpoint来实现websockets。
到目前为止,所有的电脑都工作得很好,当一些客户的一台笔记本电脑出现错误时(他使用Google Chrome):
在websocket上执行send失败:仍处于连接状态
在该计算机上,此错误将永久出现,阻塞与websockets相关的所有功能。
我们没有为websockets设置特定的端口。所以我假设他们使用默认的1 - 80。其他页面加载成功(因此,我们的网站可以从笔记本电脑访问)。
你有在哪里挖的钥匙吗?为什么只有一台笔记本电脑故障?是否需要提供更多信息?
提前感谢!
可以是很多东西:
- 防火墙
- 杀毒
- Chrome标志(如运行:Chrome .exe——disable-web-sockets)
- 病毒/恶意软件
- 中间人(MitM)
我建议安装Firefox。如果Firefox没有问题,那么Chrome肯定有问题。
我也遇到了同样的问题。检查您尝试从前端应用程序连接的端口是什么(您的套接字必须分配给端口)。我的WS服务器监听端口8080,一些用户的出站端口被阻塞。我做了一个代理从80到8080,现在所有的用户都可以访问。