コード例 #1
0
        internal void RegisterDefaultPacketHandler(IPacket packet, PacketHandler handler)
        {
            if (packet == null)
            {
                throw new ArgumentNullException("packet");
            }
            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            DefaultPacketHandlers.Add(packet.ID, handler);
        }
コード例 #2
0
        private void Dispose(bool disposing)
        {
            if (m_Disposed)
            {
                return;
            }

            if (disposing)
            {
                KeepAliveManager.Dispose();
                NetworkManager.Dispose();
                PluginManager.Dispose();

                PacketHandlers.Clear();
                DefaultPacketHandlers.Clear();
            }

            m_Disposed = true;
        }
コード例 #3
0
        private void OnPacketReceived(object sender, PacketReceivedEventArgs e)
        {
            if (e.Exception == null)
            {
                PacketLog.LogData(e.Packet, PacketDirection.Client);
                var defaultHandler = (PacketHandler)null;
                var handler        = (PacketHandler)null;

                if (DefaultPacketHandlers.TryGetValue(e.Packet.ID, out defaultHandler))
                {
                    defaultHandler(this, e.Packet); // use default handler
                }
                if (PacketHandlers.TryGetValue(e.Packet.ID, out handler))
                {
                    handler(this, e.Packet); // use custom handler
                }
            }
            else
            {
                Console.WriteLine("Failed to read packet: {0}", e.Exception.Message);
            }
        }