グループ化/統計のために、コンテナーでインスタンス化された WebSocket クライアント エンドポイントにいくつかの属性を追加したいと考えています。JSR-356 でクライアント WebSocket エンドポイントを作成しました。
Session session = container.connectToServer( MyClientEndpoint.class , uri );
Session
オブジェクトまたはMyClientEndpoint
インスタンスを渡したい:
@ClientEndpoint
public class MyClientEndpoint {
@OnOpen
public void onWebSocketConnect( Session sess ) {
...i need my param here...
}
... @OnMessage, @OnClose, @OnError handlers...
}
MyClientEndpoint
インスタンスはコンテナー(私の例では Jetty) によってインスタンス化されるため、コンストラクターで引数を渡すことはできません。Session
また、ユーザー プロパティで自分のパラメーターを設定できません。
Session session = container.connectToServer( ClientSocket.class , uri );
session.getUserProperties().put( "group", this);
ハンドラーにプロパティがなく、呼び出しの前にプロパティが設定される@OnOpen
という保証がないためです。"group"
@OnMessage
コンテナによってインスタンス化された @ClientEndpoint オブジェクトで追加のオブジェクトを使用できるようにする方法で JSR-356 WebSocket に接続するにはどうすればよいですか?