shehankonecranes / sp-react-native-mqtt

MQTT Client native module for react-native
68 stars 55 forks source link

[npm]()

Announcements:

No longer actively maintained. Looking for maintainers.

Description

A react-native mqtt client module that works

MQTT Features (inherited from the native MQTT framework)

Getting started

Installation

Step 1:

npm install sp-react-native-mqtt --save

or

yarn add sp-react-native-mqtt

Step 2: (Skip this step if you are using RN 0.60 or above as the module will be auto-linked)

react-native link sp-react-native-mqtt

Step 3:

iOS

Add pod 'MQTTClient' to your podfile and pod install

Alternatively you can manually link the library on iOS (click to expand) In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]` * Go to `node_modules` ➜ `sp-react-native-mqtt` and add `RCTMqtt.xcodeproj` * In XCode, in the project navigator, select your project. Add `libRCTmqtt.a` and `libicucore.tbd` to your project's `Build Phases` ➜ `Link Binary With Libraries` * Click `RCTMqtt.xcodeproj` in the project navigator and go the `Build Settings` tab. Make sure 'All' is toggled on (instead of 'Basic'). In the `Search Paths` section, look for `Header Search Paths` and make sure it contains both `$(SRCROOT)/../../react-native/React` - mark as `recursive`.
Android

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.

include ':sp-react-native-mqtt'
project(':sp-react-native-mqtt').projectDir = new File(rootProject.projectDir,  '../node_modules/sp-react-native-mqtt/android')
implementation ':sp-react-native-mqtt'

Usage

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);
});

API

Todo

LICENSE

INHERIT FROM MQTT LIBRARY (progress)