A TypeScript-based MQTT client module for React Native with support for JWT authentication. This package enables easy connection, subscription, message publishing, and disconnection with MQTT brokers using WebSockets.
- WebSocket Support: Connect to MQTT brokers over WebSocket.
- JWT Authentication: Use JWT tokens for secure authentication.
- Flexible: Offers essential MQTT functionalities tailored for React Native.
To install rnmrtt-client
:
npm install rnmrtt-client
Here's a quick example of how to use the rnmrtt-client
module in a TypeScript-based React Native project.
import MQTTClient from 'rnmrtt-client';
const brokerUrl = 'ws://your-broker-url.com:8083/mqtt';
const options = {
clientId: 'YOUR_CLIENT_ID', // Unique client ID for the connection
username: 'YOUR_USER_NAME', // MQTT username
password: 'YOUR_JWT_TOKEN', // JWT token as password
protocol: 'ws' as 'ws', // Specify WebSocket protocol
protocolVersion: 4 as 3 | 4 | 5, // MQTT protocol version
};
// Connect to the MQTT broker
MQTTClient.connect(brokerUrl, options);
// Subscribe to a topic
MQTTClient.subscribe('TOPIC_NAME');
// Publish a message to the topic
MQTTClient.publish('TOPIC_NAME', 'Hello from React Native!');
// Set up a listener for incoming messages
MQTTClient.onMessage((topic, message) => {
console.log(`Received message on ${topic}: ${message}`);
});
// Disconnect after 20 seconds (for demonstration)
setTimeout(() => {
MQTTClient.disconnect();
}, 20000);
Establishes a connection to the MQTT broker.
-
Parameters:
-
brokerUrl
: The URL of the MQTT broker (e.g.,ws://broker.example.com:8083/mqtt
). -
options
: An object for MQTT connection options.-
clientId
: Unique client ID for the connection. -
username
: MQTT broker username. -
password
: JWT token as password for authentication. -
protocol
: WebSocket protocol ('ws'
or'wss'
). -
protocolVersion
: MQTT protocol version (3
,4
, or5
). -
keepalive
: Keepalive interval in seconds (default:60
). -
reconnectPeriod
: Reconnection interval in milliseconds (default:1000
).
-
-
-
Example:
MQTTClient.connect('ws://broker.example.com:8083/mqtt', { clientId: 'client_id', username: 'username', password: 'jwt_token', protocol: 'ws', protocolVersion: 4, });
Subscribes to a specified topic.
-
Parameters:
-
topic
: The MQTT topic to subscribe to.
-
-
Example:
MQTTClient.subscribe('example/topic');
Publishes a message to a specified topic.
-
Parameters:
-
topic
: The MQTT topic to publish to. -
message
: The message payload to be sent.
-
-
Example:
MQTTClient.publish('example/topic', 'Hello, MQTT!');
Registers a callback function to handle incoming messages.
-
Parameters:
-
callback
: A function that receives the topic and message payload.
-
-
Example:
MQTTClient.onMessage((topic, message) => { console.log(`Received message on ${topic}: ${message}`); });
Disconnects from the MQTT broker.
-
Example:
MQTTClient.disconnect();
MIT License