0

いくつかのイベントのオブザーバーとして機能する websocket サーバーを実装しました。

@ServerEndPoint
public class Server implements SomeObserver

SomeObserver クラスから objectChanged() を実装しました。objectChanged() は、何らかのイベントが発生したときに実行されます。これは一般的なオブザーバーの実装です。

アプリケーション ロジックは次のようになります。クライアントは Websocket サーバーに接続し、サーバーは適切なクライアントに適切なイベントを送信します。

私は次のようにコーディングしました:

@ServerEndPoint
public class Server implements SomeObserver
{
  Session clientSession = null;

 @OnOpen
 public void OnOpen(Session session}
 { 
  clientSession = session;
 }

 //implemented OnMessage and OnClose, OnError methods

 public void objectChanged(Event[] event)
 {
   clientSession.sendAsyncRemote().sendObject(someObjectInfo);
 }

セッション ID を使用したことはありません。しかし驚くべきことに、サーバーはそれぞれのセッションに適切なメッセージを送信します。サーバーは、セッション認証または識別なしで、あるセッション イベントを別のセッションに送信しません。

Tyrus API でなぜ、どのように発生するかを知っている人はいますか? Tyrus webocket がセッション ID をどのようにサポートしているか知りたいです。

4

1 に答える 1