MessageOut Event

Fired when an outgoing message has been sent and/or fully acknowledged.


public event OnMessageOutHandler OnMessageOut;

public delegate void OnMessageOutHandler(object sender, MqttMessageOutEventArgs e);

public class MqttMessageOutEventArgs : EventArgs {
  public int PacketId { get; }
  public string Topic { get; }
  public int QOS { get; }
  public string Message { get; }
public byte[] MessageB { get; } public bool Retained { get; } public bool Duplicate { get; } }
Public Event OnMessageOut As OnMessageOutHandler

Public Delegate Sub OnMessageOutHandler(sender As Object, e As MqttMessageOutEventArgs)

Public Class MqttMessageOutEventArgs Inherits EventArgs
  Public ReadOnly Property PacketId As Integer
  Public ReadOnly Property Topic As String
  Public ReadOnly Property QOS As Integer
  Public ReadOnly Property Message As String
Public ReadOnly Property MessageB As Byte() Public ReadOnly Property Retained As Boolean Public ReadOnly Property Duplicate As Boolean End Class


The MessageOut event fires once for each outgoing message either immediately after it is sent (QoS 0), or after it has been fully acknowledged by the receiver (QoS 1 and 2).

  • PacketId: The message packet Id. This will always be -1 if QOS is 0.
  • Topic: The message's topic string.
  • QOS: The message's QoS level.
  • Message: The message data.
  • Retained: Whether or not this message was sent with the "Retain" flag set.
  • Duplicate: Whether or not this message was sent with the "Duplicate" flag set.

Refer to MessageAck for more information about QoS 1 and 2 message processing steps.

// MessageOut event handler.
mqtt1.OnMessageOut += (s, e) => {
  Console.WriteLine("Send message to topic '" + e.Topic + "' with QoS " + e.QOS + ":");

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks MQ 2020 .NET Edition - Version 20.0 [Build 8162]