示例#1
0
        /// <summary>
        ///
        /// </summary>
        private void ProcessRawPacket(byte[] payload)
        {
            using (var stream = new MemoryStream(payload))
            {
                using (var reader = new BinaryReader(stream))
                {
                    ClientRawOpcode opcode = (ClientRawOpcode)reader.ReadPackedUInt32();

                    ClientRawPacket packet = PacketManager.CreateRawPacket(opcode);
                    if (packet != null)
                    {
                        packet.Read(reader);
                        PacketManager.InvokeRawPacketHandler(this, opcode, packet);
                    }
                }
            }
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        public static void InvokeRawPacketHandler(NetworkSession session, ClientRawOpcode opcode, ClientRawPacket packet)
        {
            if (!rawPacketHandlers.TryGetValue(opcode, out RawPacketHandler handler))
            {
                log.Warn($"Received unhandled raw opcode 0x{opcode:X}!");
                return;
            }

            handler.Invoke(session, packet);
        }