async void RetransmitNextPublishRelease(IChannelHandlerContext context, CompletionPendingMessageState messageInfo)
 {
     try
     {
         var packet = new PubRelPacket
         {
             PacketId = messageInfo.PacketId
         };
         await this.pubRelPubCompProcessor.RetransmitAsync(context, packet, messageInfo);
     }
     catch (Exception ex)
     {
         ShutdownOnError(context, "<- PUBREL (retransmission)", ex);
     }
 }
 Task PublishReleaseToClientAsync(IChannelHandlerContext context, int packetId, string lockToken,
     IQos2MessageDeliveryState messageState, PreciseTimeSpan startTimestamp)
 {
     var pubRelPacket = new PubRelPacket
     {
         PacketId = packetId
     };
     return this.pubRelPubCompProcessor.SendRequestAsync(context, pubRelPacket,
         new CompletionPendingMessageState(packetId, lockToken, messageState, startTimestamp));
 }