@bonfire-xmpp/verse
v1.0.0
Published
Modern XMPP for the modern web
Downloads
8
Readme
Verse
Modern XMPP for the modern web.
What is this?
Verse is a JavaScript/TypeScript XMPP library forked from Stanza used in the bonfire XMPP client.
XML stanzas are converted to-and-fro JSON, meaning you won't have to work with XML unless you explicitly want to.
Extending functionality can be done in two ways, depending on how core the changes are:
- Changing the original sources
- Writing a plugin
Plugins can be added from third-party code as well, and are more suited for adding additional functionality. The idea with plugins is to extend existing types, add more XML/JSON translations, and emit a new event. See: Creating Plugins
Installing
npm install @bonfire-xmpp/verse
Echo Client Demo
import * as XMPP from 'stanza';
// Config can be setup after instantiation with updateConfig()
const client = XMPP.createClient({
jid: '[email protected]',
password: 'hunter2',
// If you have a .well-known/host-meta.json file for your
// domain, the connection transport config can be skipped.
//
// Manually running autodetection of these transports can
// be done with client.discoverBindings('server.test')
transports: {
websocket: 'wss://example.com:5281/xmpp-websocket',
bosh: 'https://example.com:5281/http-bind'
}
});
client.on('session:started', () => {
client.getRoster();
client.sendPresence();
});
client.on('chat', msg => {
client.sendMessage({
to: msg.from,
body: 'You sent: ' + msg.body
});
});
client.connect();
Documentation
- API Reference
- JXT: JSON/XML Translation
- Supported XEP Formats
- Creating Plugins
- Using with React Native
- Using PubSub
- Using Stream Management
Related Modules
These are related modules that may be useful to users of this library:
| Name | Description | Source | | ------------------------------------------------------ | -------------------------------------------------------------------- | --------------------------------------------------- | | stanza-shims | Runtime shims used by StanzaJS for node, browsers, and React Native. | Source | | webrtc-adapter | Shims browsers to provide a consistent WebRTC API. | Source |
License
Portions of Verse are derived from prior works. See NOTICE file for details.
Why fork?
The original stanza
library was used as a part of the bonfire XMPP client.
However, modifications to the library were relatively often necessary to meet downstream demands.