Esempio n. 1
0
        protected void DataReceived(byte[] data)
        {
            Packet packet = serializer.Deserilize(data);

            switch (packet.PacketHeader.PacketType)
            {
            case Header.PacketTypes.Ack:
                sendIdempotencyService.Remove(Guid.Parse(packet.PacketHeader.IdempotencyToken), out _);
                break;

            case Header.PacketTypes.Data:
                if (!receiveIdempotencyService.Find(packet.PacketHeader.IdempotencyToken))
                {
                    receiveIdempotencyService.Add(packet.PacketHeader.IdempotencyToken);
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                    SendAck(packet);
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                    List <Packet> orderedPackets = orderingService.GetNextPacket(packet).Result;
                    foreach (var orderedPacket in orderedPackets)
                    {
                        InvokeDataReceivedEvent(orderedPacket);
                    }
                }
                break;
            }
        }