public void Initialize(INetworkChannel networkChannel)
        {
            _networkChannel = networkChannel;
            _heartPacket    = new MOPacket(new MOMsg()
            {
                Content = new C2S1().ToByteString()
            });
            Type     packetHandlerBaseType = typeof(IPacketHandler);
            Assembly assembly = Assembly.GetExecutingAssembly();

            Type[] types = assembly.GetTypes();
            for (int i = 0; i < types.Length; i++)
            {
                if (!types[i].IsClass || types[i].IsAbstract)
                {
                    continue;
                }
                if (types[i].GetInterface(typeof(IPacketHandler).Name) == packetHandlerBaseType)
                {
                    IPacketHandler packetHandler = (IPacketHandler)Activator.CreateInstance(types[i]);
                    _networkChannel.RegisterHandler(packetHandler);
                }
            }

            GameEntry.Event.Subscribe(UnityGameFramework.Runtime.NetworkConnectedEventArgs.EventId, OnNetworkConnected);
            GameEntry.Event.Subscribe(UnityGameFramework.Runtime.NetworkClosedEventArgs.EventId, OnNetworkClosed);
            GameEntry.Event.Subscribe(UnityGameFramework.Runtime.NetworkMissHeartBeatEventArgs.EventId, OnNetworkMissHeartBeat);
            GameEntry.Event.Subscribe(UnityGameFramework.Runtime.NetworkErrorEventArgs.EventId, OnNetworkError);
            GameEntry.Event.Subscribe(UnityGameFramework.Runtime.NetworkCustomErrorEventArgs.EventId, OnNetworkCustomError);
        }
Exemplo n.º 2
0
        public static MOPacket BuildHeartPacket(this MOPacket packet)
        {
            packet.Packet.ActionId = 1;
            packet.Packet.UserId   = GameUser.Instance.UserId;
            packet.Packet.Token    = GameUser.Instance.Token;
            packet.Packet.MsgId    = GameUser.Instance.MsgId;
            var data = packet.Packet.ToByteString();

            packet.Packet.Sign = CryptoHelper.MD5_Encrypt(string.Format("{0}{1}", data, GlobalGame.Md5Key)).ToLower();
            return(packet);
        }