命令过滤器
SuperSocket 中的命令过滤器看起来有些像 ASP.NET MVC 中的 Action Filter,你可以用它来做命令执行的拦截,命令过滤器会在命令执行前和执行后被调用。
命令过滤器必须继承于 Attribute 类 CommandFilterAttribute:
OnCommandExecuting: 此方法将在命令执行前被调用;
OnCommandExecuted: 此方法将在命令执行后被调用;
下面的代码定义了一个命令过滤器 LogTimeCommandFilterAttribute 用于记录执行时间超过5秒钟的命令:
然后通过增加属性的方法给命令 "QUERY" 应用此过滤器:
你可以通过将 commandContext's 的 Cancel 属性设为 True 来取消当前命令的执行: