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); }
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); }