react-native-xmpp
An XMPP library for React Native.
A simple interface for native XMPP communication. Both iOS and Android are supported.
Demo
XmppDemo uses a Flux approach (check its XmppStore
) to communicate with a sample XMPP server, where 4 accounts were registered.
Example
var XMPP = ; // optional callbacksXMPP;XMPP;XMPP;XMPP;XMPP;XMPP;XMPP;XMPP; // trustHosts (ignore self-signed SSL issues)// Warning: Do not use this in production (security will be compromised).XMPP; // connectXMPP; // send messageXMPP; // join room(s)XMPP;XMPP; // send message to room(s)XMPP;XMPP; // leave room(s)XMPP;XMPP; // disconnectXMPP; // remove all event listeners (recommended on componentWillUnmount)XMPP; // remove specific event listener (type can be 'message', 'iq', etc.)XMPP;
Getting started
npm install react-native-xmpp --save
iOS
Please use CocoaPods
-
Install latest XMPPFramework: https://github.com/robbiehanson/XMPPFramework
pod 'XMPPFramework', :git => 'https://github.com/robbiehanson/XMPPFramework.git', :branch => 'master'
-
Add this package pod:
pod 'RNXMPP', :path => '../node_modules/react-native-xmpp'
If you have problems with latest 4.0 XMPPFramework and/or XCode 9.3, you may use old one with forked KissXML:
pod 'XMPPFramework', '~> 3.7.0'
pod 'KissXML', :git => "https://github.com/aksonov/KissXML.git", :branch => '5.1.4'
Android
react-native link react-native-xmpp
If it doesn't link the react-native-xmpp correct:
android/settings.gradle
include ':react-native-xmpp'project(':react-native-xmpp').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-xmpp/android')
android/app/build.gradle
dependencies { ... compile project(':react-native-xmpp')}
MainApplication.java
On top, where imports are:
Add the ReactVideoPackage
class to your list of exported packages.
@Overrideprotected List<ReactPackage> { return Arrays.<ReactPackage>;}