public override void DispatchProtocol(Protocol p, ProtocolFactoryHandle factoryHandle) { // 防止Client不进入加密,直接发送用户协议。 if (false == IsHandshakeProtocol(p.TypeId)) { p.Sender.VerifySecurity(); } if (p.TypeId == gnet.Provider.ModuleRedirect.TypeId_) { if (null != factoryHandle.Handle) { var modureRecirect = p as gnet.Provider.ModuleRedirect; if (null != Zeze && false == factoryHandle.NoProcedure) { Zeze.TaskOneByOneByKey.Execute( modureRecirect.Argument.HashCode, () => global::Zeze.Util.Task.Call( Zeze.NewProcedure( () => factoryHandle.Handle(p), p.GetType().FullName, p.UserState), p, (p, code) => p.SendResultCode(code) ) ); } else { Zeze.TaskOneByOneByKey.Execute(modureRecirect.Argument.HashCode, () => global::Zeze.Util.Task.Call( () => factoryHandle.Handle(p), p, (p, code) => p.SendResultCode(code) ) ); } } else { logger.Log(SocketOptions.SocketLogLevel, "Protocol Handle Not Found. {0}", p); } return; } base.DispatchProtocol(p, factoryHandle); }
// 用来派发异步rpc回调。 public virtual void DispatchRpcResponse(Protocol rpc, Func <Protocol, int> responseHandle, ProtocolFactoryHandle factoryHandle) { if (null != Zeze && false == factoryHandle.NoProcedure) { global::Zeze.Util.Task.Run( Zeze.NewProcedure( () => responseHandle(rpc), rpc.GetType().FullName + ":Response", rpc.UserState)); } else { global::Zeze.Util.Task.Run(() => responseHandle(rpc), rpc); } }
public virtual void DispatchProtocol(Protocol p, ProtocolFactoryHandle factoryHandle) { if (null != factoryHandle.Handle) { if (null != Zeze && false == factoryHandle.NoProcedure) { global::Zeze.Util.Task.Run( Zeze.NewProcedure( () => factoryHandle.Handle(p), p.GetType().FullName, p.UserState), p); } else { global::Zeze.Util.Task.Run(() => factoryHandle.Handle(p), p); } } else { logger.Log(SocketOptions.SocketLogLevel, "Protocol Handle Not Found. {0}", p); } }