2017-02-08 2 views
0

ログインしたユーザーに関する情報をWebアプリケーションで利用可能にしたいと思います。たとえば、ServerMessageのSessionListener.sessionAddedに識別子を渡し、その識別子を使用してユーザー情報を永続ハッシュにロードします。はBayeuxServer.Session Listenerに情報が必要です

同様に、セッションが破棄されると、SessionListener.sessionRemovedが呼び出されたときにクライアント情報をハッシュから消去したいと思います。しかし、メッセージはありません。 ServerSession.getUserAgent()を使用できますか?返される文字列は何ですか?

セッションごとに1つのSessionListenerがあるため、sessionRemovedが呼び出されたときに使用するために電子メールをSessionListenerにローカルに保存できますか?

答えて

0

2つの選択肢があります。

class MySessionListener implements BayeuxServer.SessionListener { 
    public void sessionAdded(ServerSession session, ServerMessage message) { 
     session.setAttribute("token", message.getDataAsMap().get("token")); 
    } 
    public void sessionRemoved(ServerSession session, boolean timedout) { 
     String token = (String)session.getAttribute("token"); 
     // Use the token here. 
    } 
} 

またはRemoveListenerと::セッション属性を持つ

class MySessionListener implements BayeuxServer.SessionListener { 
    public void sessionAdded(ServerSession session, ServerMessage message) { 
     final String token = (String)message.getDataAsMap().get("token"); 
     session.addListener(new RemoveListener() { 
      public void removed(ServerSession session, boolean timeout) { 
       // Use token here. 
      } 
     }); 
    } 
    public void sessionRemoved(ServerSession session, boolean timedout) { 
     // Nothing to do here. 
    } 
} 
関連する問題