//RetransmitPublish->Timer->WriteAndFlush public void RetransmitPublish(IEventLoop eventLoop, Func <Packet, Task> sendPacket) { publishRetransmissionAction.Action = (publishPacket) => { return(sendPacket(duplicateRetainPublishPacket(publishPacket))); }; publishRetransmissionAction.Start(eventLoop); }
public void Retransmit(IEventLoop eventLoop, Func <Packet, Task> sendPacket) { if (Sent)//If the packet is sent, we can start the retransmit timer { retransmissionAction.Action = sendPacket; } retransmissionAction.Start(eventLoop); }
public void RetransmitPubRel(IEventLoop eventLoop, Func <Packet, Task> sendPacket) { pubRelRetransmissionAction.Action = sendPacket; pubRelRetransmissionAction.Start(eventLoop); }