官方學習資料:獲取會話的連接和斷開事件。
本文開發環境:Win10 + VS2019 + .NetCore 3.1 + SuperSocket 2.0.0-beta.8。
Gitee:SuperSocketV2Sample。
在SuperSocket 2.0中有3個類可以獲取會話的連接和斷開事件:AppSession、SuperSocketService、SuperSocketHostBuilder。
1、AppSession
重載OnSessionConnectedAsync和OnSessionClosedAsync以監聽會話的連接和斷開事件。
2、SuperSocketService
重載OnSessionConnectedAsync和OnSessionClosedAsync以監聽會話的連接和斷開事件。
3、SuperSocketHostBuilder
注冊Session處理器:
//注冊用於處理連接、關閉的Session處理器 .UseSessionHandler(async (session) => { Console.WriteLine($"{DateTime.Now} [SessionHandler] Session connected: {session.RemoteEndPoint}"); await Task.Delay(0); }, async (session, reason) => { Console.WriteLine($"{DateTime.Now} [SessionHandler] Session {session.RemoteEndPoint} closed: {reason}"); await Task.Delay(0); })
4、運行截圖
5、說明
參照擴展你的AppSession和SuperSocketService實現代碼,如果在上述3種類中都對會話的連接和斷開事件進行了處理,無論在構建SuperSocketHostBuilder時注入代碼的順序是什么樣的,都會按照AppSession->SuperSocketService->SuperSocketHostBuilder的順序進行相關事件傳遞。