[]()
No longer actively maintained. Looking for maintainers.
A react-native mqtt client module that works
npm install sp-react-native-mqtt --save
or
yarn add sp-react-native-mqtt
react-native link sp-react-native-mqtt
Add pod 'MQTTClient'
to your podfile and pod install
getPackages()
method inside the ReactNativeHost
object in android/app/src/main/java/.../MainApplication.java
:
packages.add(new RCTMqttPackage()); // as a child of the getPackages() returned array
Don't forget to include import com.tuanpm.RCTMqtt.*;
with the other imports at the top.
android/settings.gradle
before include ':app'
:include ':sp-react-native-mqtt'
project(':sp-react-native-mqtt').projectDir = new File(rootProject.projectDir, '../node_modules/sp-react-native-mqtt/android')
android/app/build.gradle
:implementation ':sp-react-native-mqtt'
import MQTT from 'sp-react-native-mqtt';
/* create mqtt client */
MQTT.createClient({
uri: 'mqtt://test.mosquitto.org:1883',
clientId: 'your_client_id'
}).then(function(client) {
client.on('closed', function() {
console.log('mqtt.event.closed');
});
client.on('error', function(msg) {
console.log('mqtt.event.error', msg);
});
client.on('message', function(msg) {
console.log('mqtt.event.message', msg);
});
client.on('connect', function() {
console.log('connected');
client.subscribe('/data', 0);
client.publish('/data', "test", 0, false);
});
client.connect();
}).catch(function(err){
console.log(err);
});
mqtt.createClient(options)
create new client instance with options
, async operation
uri
: protocol://host:port
, protocol is [mqtt | mqtts]host
: ipaddress or host name (override by uri if set)port
: port number (override by uri if set)tls
: true/false (override by uri if set to mqtts or wss)user
: string usernamepass
: string passwordauth
: true/false - override = true Set to true if user
or pass
existclientId
: string client idkeepalive
client
on(event, callback)
: add event listener forconnect
- client connectedclosed
- client disconnectederror
- errormessage
- message objectconnect
: begin connectiondisconnect
: disconnectsubscribe(topic, qos)
publish(topic, payload, qos, retain)
message
retain
: boolean false
qos
: number 2
data
: string "test message"
topic
: string "/data"
[ ] Use WeakReference for timer
[ ] Add disconnecting event
[ ] Add async versions of:
[X] Allow for multi nested domains ie: na.est.example.com
[X] Add isConnected implementation for iOS
[X] Add isSubbed for iOS & Android
[X] Add getTopics for iOS & Android
INHERIT FROM MQTT LIBRARY (progress)