MessageIn Event

Fired when an incoming message has been received and/or fully acknowledged.


public event OnMessageInHandler OnMessageIn;

public delegate void OnMessageInHandler(object sender, MqttMessageInEventArgs e);

public class MqttMessageInEventArgs : 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 OnMessageIn As OnMessageInHandler

Public Delegate Sub OnMessageInHandler(sender As Object, e As MqttMessageInEventArgs)

Public Class MqttMessageInEventArgs 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 MessageIn event fires once for each incoming message either immediately after it is received (QoS 0), or after it has been fully acknowledged (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 received as a result of subscribing to a topic.
  • Duplicate: Whether or not the server has indicated that this message is a duplicate of another message sent previously.

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

// MessageIn event handler.
mqtt1.OnMessageIn += (s, e) => {
  Console.WriteLine("Received message from 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]