コード例 #1
0
        /// <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();
                }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="w"></param>
 public RegisterNetMethod(PacketHandlersBase w)
 {
     packetHandlerManager = w;
 }