官方学习资料:获取会话的连接和断开事件。
本文开发环境: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的顺序进行相关事件传递。