SuperSocket系列文档(6) 在AppSession和Commands中访问AppServer
时间:2011-04-27 来源:江大鱼
在AppSession和Commands中访问AppServer很方便,示例代码如下:
public class YourSession : AppSession<YourSession> { public override void StartSession() { SendResponse("Welcome to " + AppServer.Name); } public override void HandleExceptionalError(Exception e) { } } public class STOP : StringCommandBase<EchoSession> { #region CommandBase<EchoSession> Members public override void ExecuteCommand(EchoSession session, StringCommandInfo commandInfo) { session.AppServer.Stop(); } #endregion }
虽然你可以访问AppServer的最基本接口所定义的属性和方法,但是你没有办法访问你自己实现的AppServer的方法和属性。你可以直接将AppServer转化成你自己的AppServer类型来解决这个问题,不过SuperSocket为你提供了更方便的解决方法。
你可以用new关键字来重写AppSession基类的AppServer属性,代码如下:
public class BroadcastSession : AppSession<BroadcastSession> { public string DeviceNumber { get; set; } public new BroadcastServer AppServer { get { return (BroadcastServer)base.AppServer; } } public override void HandleExceptionalError(Exception e) { } }
这样你就可以在AppSession或者Commands之中直接访问你自己定义的AppServer的功能了。
public class BROA : StringCommandBase<BroadcastSession> { public override void ExecuteCommand(BroadcastSession session, StringCommandInfo commandData) { string message = commandData.Data; session.AppServer.BroadcastMessage(session, message); session.SendResponse("101 message broadcasted"); } }
相关阅读 更多 +
排行榜 更多 +