MqttClient class Null safety

A client class for interacting with MQTT Data Packets. Do not instantiate this class directly, instead instantiate either a MqttClientServer class or an MqttBrowserClient as needed. This class now provides common functionality between server side and web based clients.



MqttClient(String server, String clientIdentifier)
Initializes a new instance of the MqttClient class using the default Mqtt Port. The server hostname to connect to The client identifier to use to connect with
MqttClient.withPort(String server, String clientIdentifier, int? port)
Initializes a new instance of the MqttClient class using the supplied Mqtt Port. The server hostname to connect to The client identifier to use to connect with The port to use


autoReconnect bool
Auto reconnect, the client will auto reconnect if set true. [...]
read / write
clientEventBus EventBus?
The event bus
@protected, read / write
clientIdentifier String
Client identifier
read / write
connectionHandler ↔ dynamic
The Handler that is managing the connection to the remote server.
@protected, read / write
connectionMessage MqttConnectMessage?
The connection message to use to override the default
read / write
connectionState MqttConnectionState?
Gets the current connection state of the Mqtt Client. Will be removed, use connectionStatus
@Deprecated('Use ConnectionStatus, not this'), read-only
connectionStatus MqttClientConnectionStatus?
Gets the current connection status of the Mqtt Client. This is the connection state as above also with the broker return code. Set after every connection attempt.
hashCode int
The hash code for this object. [...]
read-only, inherited
instantiationCorrect bool
Incorrect instantiation protection
@protected, read / write
keepAlive MqttConnectionKeepAlive?
Handles the connection management while idle. Not instantiated if keep alive is disabled.
@protected, read / write
keepAlivePeriod int
Keep alive period, seconds. Keep alive is defaulted to off, this must be set to a valid value to enable keep alive.
read / write
manuallyAcknowledgeQos1 bool
read / write
messagesAwaitingManualAcknowledge int
The number of QOS 1 messages awaiting manual acknowledge.
onAutoReconnect AutoReconnectCallback?
Auto reconnect callback, if auto reconnect is selected this callback will be called before auto reconnect processing is invoked to allow the user to perform any pre auto reconnect actions.
read / write
onAutoReconnected AutoReconnectCompleteCallback?
Auto reconnected callback, if auto reconnect is selected this callback will be called after auto reconnect processing is completed to allow the user to perform any post auto reconnect actions.
read / write
onConnected ConnectCallback?
Client connect callback, called on successful connect
read / write
onDisconnected DisconnectCallback?
Client disconnect callback, called on unsolicited disconnect. This will not be called even if set if [autoReconnect} is set,instead AutoReconnectCallback will be called.
read / write
onSubscribed SubscribeCallback?
On subscribed
read / write
onSubscribeFail SubscribeFailCallback?
On subscribed fail
read / write
onUnsubscribed UnsubscribeCallback?
On unsubscribed
read / write
pongCallback PongCallback?
The ping received callback
read / write
port int?
Port number
read / write
published Stream<MqttPublishMessage>?
Published message stream. A publish message is added to this stream on completion of the message publishing protocol for a Qos level. Attach listeners only after connect has been called.
publishingManager PublishingManager?
Handles everything to do with publication management.
@protected, read / write
resubscribeOnAutoReconnect bool
Re subscribe on auto reconnect. Auto reconnect will perform automatic re subscription of existing confirmed subscriptions unless this is set to false. In this case the caller must perform their own re subscriptions manually using unsubscribe, subscribe and resubscribe as needed from the appropriate callbacks.
read / write
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
server String
Server name
read / write
subscriptionsManager SubscriptionsManager?
The subscriptions manager responsible for tracking subscriptions.
@protected, read / write
updates Stream<List<MqttReceivedMessage<MqttMessage>>>?
The stream on which all subscribed topic updates are published to
websocketProtocols List<String>
User definable websocket protocols. Use this for non default websocket protocols only if your broker needs this. There are two defaults in MqttWsConnection class, the multiple protocol is the default. Some brokers will not accept a list and only expect a single protocol identifier, in this case use the single protocol default. You can supply your own list, or to disable this entirely set the protocols to an empty list , i.e [].
websocketProtocolString List<String>?
@protected, read / write


acknowledgeQos1Message(MqttPublishMessage message) bool?
Manually acknowledge a received QOS 1 message. Has no effect if manuallyAcknowledgeQos1 is not in force or the message is not awaiting a QOS 1 acknowledge. Returns true if an acknowledgement is sent to the broker.
checkCredentials(String? username, String? password) → void
Check the username and password validity
connect([String? username, String? password]) Future<MqttClientConnectionStatus?>
Common client connection method.
disconnect() → void
Disconnect from the broker. This is a hard disconnect, a disconnect message is sent to the broker and the client is then reset to its pre-connection state, i.e all subscriptions are deleted, on subsequent reconnection the use must re-subscribe, also the updates change notifier is re-initialised and as such the user must re-listen on this stream. [...]
doAutoReconnect({bool force = false}) → void
Auto reconnect method, used to invoke a manual auto reconnect sequence. If autoReconnect is not set this method does nothing. If the client is not disconnected this method will have no effect unless the force parameter is set to true, otherwise auto reconnect will try indefinitely to reconnect to the broker.
getConnectMessage(String? username, String? password) MqttConnectMessage
Gets a pre-configured connect message if one has not been supplied by the user. Returns an MqttConnectMessage that can be used to connect to a message broker if the user has not set one.
getSubscriptionsStatus(String topic) MqttSubscriptionStatus
Gets the current status of a subscription.
internalDisconnect() → void
Internal disconnect This is always passed to the connection handler to allow the client to close itself down correctly on disconnect.
logging({required bool on}) → void
Turn on logging, true to start, false to stop
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
publishMessage(String topic, MqttQos qualityOfService, Uint8Buffer data, {bool retain = false}) int
Publishes a message to the message broker. Returns The message identifer assigned to the message. Raises InvalidTopicException if the topic supplied violates the MQTT topic format rules.
resubscribe() → void
Re subscribe. Unsubscribes all confirmed subscriptions and re subscribes them without sending unsubscribe messages to the broker. If an unsubscribe message to the broker is needed then use unsubscribe followed by subscribe for each subscription. Can be used in auto reconnect processing to force manual re subscription of all existing confirmed subscriptions.
setProtocolV31() → void
Set the protocol version to V3.1 - default
setProtocolV311() → void
Set the protocol version to V3.1.1
subscribe(String topic, MqttQos qosLevel) Subscription?
Initiates a topic subscription request to the connected broker with a strongly typed data processor callback. The topic to subscribe to. The qos level the message was published at. Returns the subscription or null on failure
toString() String
A string representation of this object. [...]
unsubscribe(String topic) → void
Unsubscribe from a topic


operator ==(Object other) bool
The equality operator. [...]