SocketIO.Client.Namespace.HandlePacket C# (CSharp) Method

HandlePacket() private method

private HandlePacket ( SocketIO.Client.Impl.Packet packet ) : void
packet SocketIO.Client.Impl.Packet
return void
      internal void HandlePacket(Packet packet)
      {
         Action<string> ack = args => m_socket.SendPacket(new Packet { Type = PacketType.Ack, Args = args, AckId = packet.Id });

         switch (packet.Type)
         {
            case PacketType.Connect:
               EmitLocally("connect");
               break;
            case PacketType.Disconnect:
               EmitLocally("disconnect", packet.Reason);
               break;
            case PacketType.Message:
            case PacketType.Json:
               if (packet.Ack != null && packet.Ack != "data")
               {
                  ack(null);
               }

               EmitLocally("message", packet.Data, packet.Ack == "data" ? ack : null);
               break;
            case PacketType.Event:
               var args = JsonConvert.DeserializeObject<object[]>(packet.Args);

               EmitLocally(packet.Name, args, packet.Ack == "data" ? ack : null);
               break;
            case PacketType.Ack:
               if (m_acks.ContainsKey(packet.AckId))
               {
                  var ackToCall = m_acks[packet.AckId];
                  m_acks.Remove(packet.AckId);
                  ackToCall(packet.Args);
               }
               break;
            case PacketType.Error:
               EmitLocally(packet.Reason == "unauthorized" ? "connect_failed" : "error", packet.Reason);
               break;
         }
      }