什么是AppSession? AppSession 代表一个和客户端的逻辑连接,基于连接的操作应该定于在该类之中。你可以用该类的实例发送数据到客户端,接收客户端发送的数据或者关闭连接。同时可以保存客户端所关联的数据。什么是AppServer? AppServer 代表了监听客 ...
什么是AppSession?
AppSession 代表一个和客户端的逻辑连接,基于连接的操作应该定于在该类之中。你可以用该类的实例发送数据到客户端,接收客户端发送的数据或者关闭连接。同时可以保存客户端所关联的数据。
什么是AppServer?
AppServer 代表了监听客户端连接,承载TCP连接的服务器实例。理想情况下,我们可以通过AppServer实例获取任何你想要的客户端连接,服务器级别的操作和逻辑应该定义在此类之中。
第一步:创建你的AppSession
为什么要创建AppSession呢,本人认为,快速入门系统,以下三点足够你用的了。
- 需要重新实现会话创建、收到未知的协议数据的时候、处理异常等可重载的方法,像异常,只是做了记录日志操作,部分方法都是不处理。
- 需要关联一些数据,同时AppSession提供了可存放最多10个数据的Items的属性(IDictionary<object, object>类型)。
- 需要其他对象来实现自定义协议。
1 // 在下面的代码中,当一个新的连接连接上时,服务器端立即向客户端发送欢迎信息。 这段代码还重写了其它AppSession的方法用以实现自己的业务逻辑。 2 public class TelnetSession : AppSession<TelnetSession> 3 { 4 // 重载OnSessionStarted函数,赞同于appServer.NewSessionConnected += NewSessionConnected 5 protected override void OnSessionStarted() 6 { 7 // 会话链接成功后的逻辑部分。 8 this.Send("Welcome to SuperSocket Telnet Server"); 9 }10 11 protected override void HandleUnknownRequest(StringRequestInfo requestInfo)12 {13 // 收到未知请求的逻辑部分14 this.Send("Unknow request");15 }16 17 protected override void OnSessionClosed(CloseReason reason)18 {19 // 会话关闭后的逻辑代码20 base.OnSessionClosed(reason);21 }22 }23 24 // 你可以根据你的业务需求来给Session类增加新的属性25 public class PlayerSession :AppSession<PlayerSession>26 {27 public int GameHallId { get; internal set; }28 29 public int RoomId { get; internal set; }30 }
原标题:SuperSocket快速入门(三):实现你的AppServer和AppSession
关键词:session
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。