Пример #1
0
 private async Task SendOutcomingPacket(object packetOrCommand)
 {
     if (packetOrCommand == null)
     {
         _tcpClient.Client.Shutdown(SocketShutdown.Send);
         _outcomingPacketDispatcher.Complete();
     }
     else if (packetOrCommand == _useCompressionPacket)
     {
         _useCompression = true;
     }
     else if (packetOrCommand is UncompressedPacket packet)
     {
         using (var bufferScope = _bufferPool.CreateScope())
         {
             if (_useCompression)
             {
                 var newPacket = PacketCompress.Compress(packet, bufferScope, _compressThreshold);
                 await newPacket.SerializeAsync(_remoteStream);
             }
             else
             {
                 await packet.SerializeAsync(_remoteStream);
             }
         }
     }
 }
Пример #2
0
 private async Task SendOutcomingPacket(UncompressedPacket packet)
 {
     if (_useCompression)
     {
         var newPacket = PacketCompress.Compress(ref packet);
         await newPacket.SerializeAsync(_remoteStream);
     }
     else
     {
         await packet.SerializeAsync(_remoteStream);
     }
 }
Пример #3
0
 private async Task SendOutcomingPacket(UncompressedPacket packet)
 {
     // Close
     if (packet == null)
     {
         _tcpClient.Client.Shutdown(SocketShutdown.Send);
         _outcomingPacketDispatcher.Complete();
     }
     else if (_useCompression)
     {
         var newPacket = PacketCompress.Compress(ref packet);
         await newPacket.SerializeAsync(_remoteStream);
     }
     else
     {
         await packet.SerializeAsync(_remoteStream);
     }
 }