2

https://stackoverflow.com/questions/41810306/appointment-scheduling ...を参照してください。

4

1 に答える 1

10

Sesssion.setIdleTimeout(long ms)のサポートは、現在行っているJSR-356(javax.websocket)の作業をサポートするために最近追加されました。

ただし、9.0.0.RC2では、次の手順を実行して、セッションが作成される前にアイドルタイムアウトを早期に設定できます(これは修正されており、RC3になることを願っています)

サーバー側オプションA:WebSocketServlet init-param

WEB-INF/web.xmlWebSocketサーブレットの場合、次の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)
    {
    }
}
于 2013-03-01T16:09:40.870 に答える