いくつかのイベントのオブザーバーとして機能する 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 をどのようにサポートしているか知りたいです。