gpt4 book ai didi

timeout - Jetty 9 RC2 websocket超时

转载 作者:行者123 更新时间:2023-12-02 14:05:21 25 4
gpt4 key购买 nike

最佳答案

最近添加了对 Session.setIdleTimeout(long ms) 的支持,以支持我们当前正在进行的 JSR-356 (javax.websocket) 工作。

但是,在 9.0.0.RC2 中,您可以执行以下操作,在创建 session 之前提前设置空闲超时(此问题正在修复,希望将其纳入 RC3)

服务器端选项 A:WebSocketServlet init-param

在您的 websocket servlet 的 WEB-INF/web.xml 中,指定以下 init-param

<init-param>
<param-name>maxIdleTime</param-name>
<param-value>10000</param-value>
</init-param>

服务器端选项 B:随着 WebSocketFactory 上的策略更改

在您的 WebSocketServlet.configure(WebSocketServletFactory 工厂) 调用中

@Override
public void configure(WebSocketServletFactory factory)
{
factory.getPolicy().setIdleTimeout(10000);
}

客户端选项 A:作为 WebSocketClient 设置

WebSocketClient client = new WebSocketClient();
client.getPolicy().setIdleTimeout(10000);
client.start();

带注释的@WebSocket选项

这适用于服务器或客户端 Websocket。

注意:不能将 WebSocketListener 和 @WebSocket 注解混合在一起

import org.eclipse.jetty.websocket.api.Session;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketError;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage;
import org.eclipse.jetty.websocket.api.annotations.WebSocket;

@WebSocket(maxIdleTime=10000)
public class MySocket
{
@OnWebSocketClose
public void onClose(int statusCode, String reason)
{
}

@OnWebSocketConnect
public void onConnect(Session sess)
{
}

@OnWebSocketError
public void onError(Throwable cause)
{
}

@OnWebSocketMessage
public void onText(String message)
{
}
}

关于timeout - Jetty 9 RC2 websocket超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15160222/

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