Ejemplo n.º 1
0
 public virtual void OnDisconnected(SocketStateObject state)
 {
     if (!Client.Connected)
     {
         Stopped(this, EventArgs.Empty);
     }
     else
     {
         Stop();
     }
 }
Ejemplo n.º 2
0
 public virtual void ProcessPacketStream(SocketStateObject state, uint packetId, DataStream packetStream)
 {
     Log.ConditionalDebug("Packet: {0} (0x{0:X2})", packetId);
     if (Handler.Contains(packetId))
     {
         object packet = PacketsRegistry.Deserialize(packetId, packetStream);
         if (packet != null)
         {
             Handler.HandlePacket(packetId, packet);
         }
     }
 }
Ejemplo n.º 3
0
        public virtual void ProcessStream(SocketStateObject state, DataStream ds)
        {
            var goodPos = 0;

            while (true)
            {
                var id     = 0U;
                var length = 0U;
                if (!ds.TryReadCompactUInt32(out id) || !ds.TryReadCompactUInt32(out length) || !ds.CanReadBytes((int)length))
                {
                    break;
                }
                var packetStream = new DataStream(ds.ReadBytes((int)length));
                packetStream.IsLittleEndian = false;
                goodPos = ds.Position;

                ProcessPacketStream(state, id, packetStream);
            }
            ds.Position = goodPos;
            ds.Flush();
        }