簡體   English   中英

Tyrus WebSocket API中的會話標識

[英]Session Identification in Tyrus WebSocket API

我已經實現了一個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);
 }

我從未使用過任何會話標識。 但是令人驚訝的是,服務器為各個會話發送了適當的消息。 沒有任何會話身份驗證或標識,服務器不會將一個會話事件發送到另一會話。

有誰知道Tyrus API中的原因以及如何發生。 我想知道Tyrus webocket如何支持會話識別。

clientSession.sendAsyncRemote().sendObject(someObjectInfo); 

在上一行中,將根據連接創建會話對象。 它保存參考套接字對象(每個連接)。

因此,當發送消息時,數據將被傳輸到相應的客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM