NotifyConfirm registers a listener chan for reliable publishing to receive basic.ack and basic.nack messages. These messages will be sent by the server for every publish after Channel.Confirm has been called. The value sent on these channels is the sequence number of the publishing. It is up to client of this channel to maintain the sequence number of each publishing and handle resends on basic.nack.
There will be either at most one Ack or Nack delivered for every Publishing.
Acknowledgments will be received in the order of delivery from the NotifyConfirm channels even if the server acknowledges them out of order.
The capacity of the ack and nack channels must be at least as large as the number of outstanding publishings. Not having enough buffered chans will create a deadlock if you attempt to perform other operations on the Connection or Channel while confirms are in-flight.
It's advisable to wait for all acks or nacks to arrive before calling Channel.Close().