https://github.com/aksonov/react-native-xmpp
XMPP library for React Native (iOS and Android native support)
https://github.com/aksonov/react-native-xmpp
Last synced: 18 days ago
JSON representation
XMPP library for React Native (iOS and Android native support)
- Host: GitHub
- URL: https://github.com/aksonov/react-native-xmpp
- Owner: aksonov
- License: bsd-2-clause
- Created: 2015-09-23T17:25:25.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2019-04-04T04:49:41.000Z (over 6 years ago)
- Last Synced: 2025-10-06T12:52:58.691Z (24 days ago)
- Language: Objective-C
- Homepage:
- Size: 508 KB
- Stars: 311
- Watchers: 16
- Forks: 98
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-react-native - react-native-xmpp ★256 - XMPP Library for React Native (Components / Backend)
- awesome-react-native - react-native-xmpp ★256 - XMPP Library for React Native (Components / Backend)
- awesome-react-native - react-native-xmpp ★256 - XMPP Library for React Native (Components / Backend)
- awesome-react-native-ui - react-native-xmpp ★122 - XMPP Library for React Native (Components / Backend)
- awesome-react-native - react-native-xmpp ★256 - XMPP Library for React Native (Components / Backend)
README
# 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
```js
var XMPP = require('react-native-xmpp');
// optional callbacks
XMPP.on('message', (message) => console.log('MESSAGE:' + JSON.stringify(message)));
XMPP.on('iq', (message) => console.log('IQ:' + JSON.stringify(message)));
XMPP.on('presence', (message) => console.log('PRESENCE:' + JSON.stringify(message)));
XMPP.on('error', (message) => console.log('ERROR:' + message));
XMPP.on('loginError', (message) => console.log('LOGIN ERROR:' + message));
XMPP.on('login', (message) => console.log('LOGGED!'));
XMPP.on('connect', (message) => console.log('CONNECTED!'));
XMPP.on('disconnect', (message) => console.log('DISCONNECTED!'));
// trustHosts (ignore self-signed SSL issues)
// Warning: Do not use this in production (security will be compromised).
XMPP.trustHosts(['chat.google.com']);
// connect
XMPP.connect(MYJID, MYPASSWORD);
// send message
XMPP.message('Hello world!', TOJID);
// disconnect
XMPP.disconnect();
// remove all event listeners (recommended on componentWillUnmount)
XMPP.removeListeners();
// remove specific event listener (type can be 'message', 'iq', etc.)
XMPP.removeListener(TYPE);
```
## Getting started
1. `npm install react-native-xmpp --save`
### iOS
Please use CocoaPods
2. Install latest XMPPFramework:
https://github.com/robbiehanson/XMPPFramework
`pod 'XMPPFramework', :git => 'https://github.com/robbiehanson/XMPPFramework.git', :branch => 'master'`
3. 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**
```gradle
include ':react-native-xmpp'
project(':react-native-xmpp').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-xmpp/android')
```
**android/app/build.gradle**
```gradle
dependencies {
...
compile project(':react-native-xmpp')
}
```
**MainApplication.java**
On top, where imports are:
```java
import rnxmpp.RNXMPPPackage;
```
Add the `ReactVideoPackage` class to your list of exported packages.
```java
@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage(),
new RNXMPPPackage()
);
}
```