[英]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.