mqtt 1.1.4

mqtt dart client library

Mqtt #

This is an mqtt client written in DART. It can be used in the browser (over websocket) or the VM (over socker or websocket).

See for details on mqtt protocol

Usage #

Create a connection over websocket: var mqttCnx = new MqttConnectionIOWebSocket.setOptions("ws://");

Create a connection over socket: var mqttCnx = new MqttConnectionIOSocket.setOptions(host:, port: 8083);

Create mqtt client: MqttClient c = new MqttClient(mqttCnx, clientID: "MyClientID", qos: QOS_1);

Set a will (must be done before connecting to the broker): c.setWill("MyWillTopic", "MyWillPayload", QOS_1, 0);

Connect to broker: c.connect(onConnectionLost) .then( (c)=> onConnected(c) ) .catchError((e) => print("Error: $e"), test: (e) => e is SocketException)
.catchError((mqttErr) => print("Error: $mqttErr") );

Publish a message: c.publish("MyTopic", "MyMessage", 1, QOS_1, 0) .then( (m) => print("Message ${m.messageID} published"); );

Subscribe to a topic: c.subscribe("MyTopic", QOS_1, onMessage) .then( (s) => print("Subscription done - ID: ${s.messageID} - Qos: ${s.grantedQoS}") );

Unsubscribe: c.unsubscribe("MyTopic", s.messageID) .then( (u) => print("Unsubscribed from subscription ${u.messageID}") );

Disconnect: c.disconnect();

VM Example #

See mqtt_sub for a sample mqtt publish and mqtt_pub for a sample subscribe. Available options can be displayed through: > dart mqtt_sub.dart -h > dart mqtt_pub.dart -h

Web Example #

See Mqtt_web for a sample web page connecting, subscribing and publishing mqtt messages

Testing #

Testing was done using the mosquitto broker ( A mosquitto test server is available at

Websocket testing was done throught mqtt_ws_bridge.dart.