gpt4 book ai didi

java - websocket自动关闭连接

转载 作者:IT老高 更新时间:2023-10-28 13:52:20 26 4
gpt4 key购买 nike

我正在用 java 构建一个应用程序,它有一个基于 jetty 的嵌入式 websocket 服务器。客户端是谷歌浏览器中默认的 websocket 实现。一切正常,只有在连接关闭一段时间后服务器和客户端之间没有传输时。我不确定是谁在关闭连接: jetty 服务器还是 chrome 浏览器。

我认为解决方案是每 x 秒发送一条消息,但我愿意接受更好的解决方案。

所以...我的问题是:

  1. 这是 websocket 协议(protocol)需要的东西吗?在这种情况下,chrome 浏览器正在关闭我的连接?

  2. 这是否与 jetty 相关,或多或少与 websocket 协议(protocol)有关?在这种情况下如何在 jetty 禁用它?

  3. 还有问题吗?

谢谢

更新:即使我每秒发送 1 条消息,连接仍然关闭

最佳答案

回答您的第三个问题:您的客户无论如何都希望能够应对临时网络问题,例如假设用户在 session 之间关闭笔记本电脑使其 hibernate ,或者网络只是暂时中断。

解决方案是在 Web 套接字客户端上监听 onclose 事件,当它们发生时,设置客户端超时以重新打开连接,比如一秒钟:

function setupWebSocket(){
this.ws = new WebSocket('wss://host:port/path');
this.ws.onerror = ...;
this.ws.onopen = ...;
this.ws.onmessage = ...;
this.ws.onclose = function(){
setTimeout(setupWebSocket, 1000);
};
}

关于java - websocket自动关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com