public virtual void Serialize(Stream stream)
 {
     using (var w = stream.ToBinaryWriter(true))
     {
         w.WriteEnum(P2PMapper.GetOpCode(GetType()));
         Serializer.Serialize(w, this);
     }
 }
예제 #2
0
        public void Packet(IService service, RelaySession session, PacketMessage message, MessageReceivedEventArgs e)
        {
            if (session.Player?.Room == null)
            {
                return;
            }

            var peerMessages = P2PMapper.GetMessage(message.IsCompressed ? message.Data.DecompressLZO(2048) : message.Data);

            foreach (var peerMessage in peerMessages)
            {
                if (!_peerService.OnMessageReceived(service, new MessageReceivedEventArgs(session, peerMessage, e.DeferralManager)))
                {
                    //_logger.Debug()
                    //    .Account(session)
                    //    .Message("Unhandled PeerMessage: {0}", peerMessage.GetType().Name)
                    //    .Write();
                }
            }
        }