0.4.16 • Published 7 years ago
@hawkingnetwork/react-native-mqtt v0.4.16
Description
react-native mqtt client module
MQTT Features (inherit from native MQTT framework)
- Use MQTT Framework for IOS, Paho MQTT Client for Android
- Support both IOS and Android
- SSL/TLS
- Native library, support mqtt over tcp
Warning
This library in progress developing, api may change, SSL/TLS non verify
Getting started
Manual install
JS
npm install rusfearuth/react-native-mqtt --saveor
yarn add rusfearuth/react-native-mqttiOS
- In XCode, in the project navigator, right click
Libraries➜Add Files to [your project's name] - Go to
node_modules➜react-native-mqttand addRCTMqtt.xcodeproj - In XCode, in the project navigator, select your project. Add
libRCTmqtt.aandlibicucore.tbdto your project'sBuild Phases➜Link Binary With Libraries - Click
RCTMqtt.xcodeprojin the project navigator and go theBuild Settingstab. Make sure 'All' is toggled on (instead of 'Basic'). In theSearch Pathssection, look forHeader Search Pathsand make sure it contains both$(SRCROOT)/../../react-native/React- mark asrecursive. - Run your project (
Cmd+R)
Android
- Modify the ReactInstanceManager.builder() calls chain in
android/app/main/java/.../MainActivity.javato include:
import com.tuanpm.RCTMqtt.*; // import
.addPackage(new RCTMqttPackage()) //for older version
new RCTMqttPackage() // for newest version of react-native- Append the following lines to
android/settings.gradlebeforeinclude ':app':
include ':react-native-mqtt'
project(':react-native-mqtt').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mqtt/android')- Insert the following lines inside the dependencies block in
android/app/build.gradle, don't missingapply plugin:'java'on top:
compile project(':react-native-mqtt')Notes:
dependencies {
compile project(':react-native-mqtt')
}Usage
import MQTT from '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);
});API
mqtt.createClient(options)create new client instance withoptions, async operationuri:protocol://host:port, protocol is mqtt | mqttshost: 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 ifuserorpassexistclientId: string client idkeepalive
clienton(event, callback): add event listener for- event:
connect- client connected - event:
closed- client disconnected - event:
error- error - event:
message- message object
- event:
connect: begin connectiondisconnect: disconnectsubscribe(topic, qos)publish(topic, payload, qos, retain)
messageretain: booleanfalseqos: number2data: string"test message"topic: string"/data"
Todo
- Use WeakReference for timer
- Add disconnecting event
LICENSE
INHERIT FROM MQTT LIBRARY (progress)