SuperSocket学习进展 下载本文

{

var session = commandContext.Session;

var startTime = session.Items.GetValue(\ var ts = DateTime.Now.Subtract(startTime);

if (ts.TotalSeconds > 5 && session.Logger.IsInfoEnabled) {

session.Logger.InfoFormat(\commandContext.CurrentCommand.Name, ts.ToString()); } } }

然后通过增加属性的方法给命令 \应用此过滤器: [LogTimeCommandFilter]

public class QUERY : StringCommandBase {

public override void ExecuteCommand(TestSession session, StringCommandInfo commandData) {

//Your code } }

如果你想应用次过滤器给所有的命令, 你可以向下面的代码这样将此命令过滤器的属性加到你的 AppServer 类上面去: [LogTimeCommandFilter]

public class TestServer : AppServer { }

你可以通过将 commandContext's 的 Cancel 属性设为 True 来取消当前命令的执行: public class LoggedInValidationFilter : CommandFilterAttribute {

public override void OnCommandExecuting(CommandExecutingContext commandContext) {

var session = commandContext.Session as MyAppSession;

//If the session is not logged in, cancel the executing of the command if (!session.IsLoggedIn)

commandContext.Cancel = true; }

public override void OnCommandExecuted(CommandExecutingContext commandContext) { } }

ServerConfig配置内没有对ipRange的配置,只有ConnectionFilter属性,但完全不起作用,难道只能使用BootstrapFactory启动才能使用连接过滤吗?

多个 Listener(监听器)

关键字: 多个端口, 多个监听, Listener, 多个Listener

单个 listener

在下面的配置中,你可以配置服务器的监听 ip/port:

serverType=\SuperSocket.QuickStart.TelnetServer_StartByConfig\ ip=\

多个 listener

你可以增加一个子节点 \用于添加多对监听 ip/port:

type=\SuperSocket.QuickStart.EchoService\

在这种情况下,服务器实例将监听两个本地端口。 这个功能和 IIS 站点的多绑定功能非常相似。 你也可以给不同的监听器设置不同的选项:

type=\SuperSocket.QuickStart.EchoService\