我正在java中构建一个具有基于jetty的嵌入式websocket服务器的应用程序.客户端是Google Chrome中的默认websocket实现.只有在连接关闭一定时间后服务器和客户端之间没有传输时,一切正常.我不确定谁正在关闭连接:jetty服务器或chrome浏览器.
我认为解决方案是每隔x秒发送一条消息,但我打开了更好的解决方案.
所以......我的问题是:
这是websocket协议所需要的东西吗?在这种情况下,chrome浏览器正在关闭我的连接?
这是否与jetty相关并且或多或少与websocket协议有关?在这种情况下,如何在码头禁用此功能?
还有其他问题吗?
谢谢
更新:即使我发送1条消息/秒仍然关闭连接
我用 create-react-app 创建了一个新项目,然后运行 npm start 然后出现了。 https://imgur.com/a/3By9NCr
使用 FF 69.0.3
我们的Web应用程序有一个按钮,可以将数据发送到本地网络上的服务器,然后在打印机上打印.
到目前为止很容易:按钮触发了一个http://printerserver/print.php带有令牌的AJAX POST请求,该页面连接到Web应用程序以验证令牌并获取要打印的数据然后打印.
但是,我们现在通过HTTP提供我们的Web应用程序(我宁愿不再回到HTTP),而新版本的Chrome和Firefox不再向HTTP地址发出请求,他们甚至不发送请求检查CORS标头.
现在,什么是跨协议XHR的现代替代品?Websockets是否遭遇同样的问题?(谷歌搜索没有说明这里的当前状态是什么.)我可以使用TCP套接字吗?我也不愿意切换到GET请求,因为该动作不是幂等的,它可能对预加载和缓存有实际意义.
我可以以任何方式更改打印机服务器上的应用程序(因此我可以用NodeJS或其他东西替换它)但我无法更改用户的浏览器(例如,信任打印机服务器的自签名证书).