簡體   English   中英

用netty重新連接/恢復websocket連接

[英]reconnect/resume websocket connection with netty

我正在通過netty websocket開發聊天服務器。 我們的客戶端主要基於瀏覽器。 發生的是,當我刷新瀏覽器時,它將關閉websocket連接並丟失所有內容,並在再次加載瀏覽器時創建一個新的套接字。 是否有任何機制可以與服務器端的我以前的websocket會話重新連接。

我打算緩存所有用戶會話,如果從客戶端接收到任何連接關閉事件,則不刪除等待30-60秒以上的用戶會話信息,在此期間,如果服務器從同一客戶端接收到新的連接請求(通過cookie id檢測),則替換為新的會話信息。

我的問題是服務器接收連接關閉事件時是否不刪除會話,通過該會話的通道進行其他讀/寫操作會造成問題。

我可以從以下內容了解到

我的問題是服務器接收連接關閉事件時是否不刪除會話,通過該會話的通道進行其他讀/寫操作會造成問題。

您的聊天邏輯與頻道/頻道處理程序對象緊密耦合。

如果您可以將聊天邏輯移動到一個單獨的類(我稱為“會話”),並且在該類中具有onEventXXX回調,並且在其之上具有聊天邏輯(可能有單獨的類鏈),那么在進行寫操作時,請編寫使用session.write(...)的消息。 “會話”必須將其委托給基礎通道。

關閉基礎頻道后,可以將“會話”對象保留一段時間,然后重新附加新的頻道。

為此,您可能需要創建一個單獨的Netty處理程序,稱為“ SessionHandler”,並處理通道事件/會話的創建。

暫無
暫無

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

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