/// <summary> /// 注册所有模块的网络消息到包管理器里 /// </summary> /// <param name="modules"></param> /// <param name="handlers"></param> public static void Register(ILogicModule[] modules, PacketHandlersBase handlers) { foreach (var m in modules) { if (m is TradeAge.Server.Interface.Server.IGame) { IProtoclAutoCode pac = new IGameAccess1(); list.Add(pac); pac.SetModule(m as TradeAge.Server.Interface.Server.IGame); pac.PacketHandlerManager = handlers; pac.Init(); } if (m is TradeAge.Server.Interface.Server.ILogin) { IProtoclAutoCode pac = new ILoginAccess2(); list.Add(pac); pac.SetModule(m as TradeAge.Server.Interface.Server.ILogin); pac.PacketHandlerManager = handlers; pac.Init(); } if (m is TradeAge.Server.Interface.Server.IScene) { IProtoclAutoCode pac = new ISceneAccess3(); list.Add(pac); pac.SetModule(m as TradeAge.Server.Interface.Server.IScene); pac.PacketHandlerManager = handlers; pac.Init(); } } }
public void BaseTest() { var manager = new PacketHandlersBase(); var pr = new PacketReaderModule(); new RegisterNetMethod(manager).Register(new ILogicModule[] {pr}); Assert.IsNotNull(manager.Handlers[1], "方法没注册到消息管理器里"); manager.Handlers[1].OnReceive(new NetState(), PacketReader.AcquireContent(DogBuffer.GetFromPool32K())); Assert.IsTrue(pr.IsTouchOnReadTest); Assert.IsNotNull(manager.Handlers[2], "包读取方法没注册到消息管理器"); manager.Handlers[2].OnReceive(new NetState(), PacketReader.AcquireContent(DogBuffer.GetFromPool32K())); Assert.IsTrue(pr.IsTouchPackageReader); Assert.IsNotNull(manager.Handlers[3], "简单读取方法没注册到消息管理器"); manager.Handlers[3].OnReceive(new NetState(), PacketReader.AcquireContent(DogBuffer.GetFromPool32K())); Assert.IsTrue(pr.IsTouchSimpleMethod); }
public void BaseTest() { var manager = new PacketHandlersBase(); var pr = new PacketReaderModule(); new RegisterNetMethod(manager).Register(new ILogicModule[] { pr }); Assert.IsNotNull(manager.Handlers[1], "方法没注册到消息管理器里"); manager.Handlers[1].OnReceive(new NetState(), new PacketReader(DogBuffer.GetFromPool32K())); Assert.IsTrue(pr.IsTouchOnReadTest); Assert.IsNotNull(manager.Handlers[2], "包读取方法没注册到消息管理器"); manager.Handlers[2].OnReceive(new NetState(), new PacketReader(DogBuffer.GetFromPool32K())); Assert.IsTrue(pr.IsTouchPackageReader); Assert.IsNotNull(manager.Handlers[3], "简单读取方法没注册到消息管理器"); manager.Handlers[3].OnReceive(new NetState(), new PacketReader(DogBuffer.GetFromPool32K())); Assert.IsTrue(pr.IsTouchSimpleMethod); }
/// <summary> /// /// </summary> /// <param name="w"></param> public RegisterNetMethod(PacketHandlersBase w) { packetHandlerManager = w; }