MQTT client
The startMQTTClient function connects to a MQTT broker using TCP or TLS.
import { startMQTTClient } from "@devicescript/net"
const mqtt = await startMQTTClient({
host: "broker.hivemq.com",
proto: "tcp",
port: 1883,
})
tip
You can use HiveMQ public broker for testing with public data.
publish
The publish function sends a message on a topic.
import { startMQTTClient } from "@devicescript/net"
const mqtt = await startMQTTClient({
host: "broker.hivemq.com",
proto: "tcp",
port: 1883,
})
await mqtt.publish("devs/log", "hello")
deviceIdentifier
You can use deviceIdentifier to uniquely identify the device
in the topic
import { deviceIdentifier } from "@devicescript/core"
import { startMQTTClient } from "@devicescript/net"
const mqtt = await startMQTTClient({
host: "broker.hivemq.com",
proto: "tcp",
port: 1883,
})
const id = deviceIdentifier("self")
await mqtt.publish(`devs/log/${id}`, "hello")
subscribe
The subscribe function creates a subscription for a topic route.
The function takes an optional handler and returns an observable.
import { startMQTTClient } from "@devicescript/net"
const mqtt = await startMQTTClient({
host: "broker.hivemq.com",
proto: "tcp",
port: 1883,
})
await mqtt.subscribe(`devs/log/#`, msg => {
console.log(msg.content.toString("utf-8"))
})
stop
The MQTT client will automatically retry to connect once it detects that connectivity is lost.
To close the current socket and stop the reconnect task, use stop.
Acknowledgements
The MQTT client is based on micro-mqtt.