Package Exports
- node-xmpp-client
- node-xmpp-client/lib/session
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-xmpp-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-xmpp-client
Idiomatic XMPP client library for node.js
Now usable in browsers too thanks to Browserify. To create a bundle run grunt browserify
.
Installation
Note: We now only support nodejs versions 0.8.0 and greater.
With package manager npm:
npm install node-xmpp-client
Testing
Install the dev dependencies, then...
npm test
To run the tests and the code style checks then use:
grunt test
Also see the tests run in travis. The tests in travis run both the code and code style tests.
How to use
Please see the various examples.
Features
- Client authentication with SASL DIGEST-MD5, PLAIN, ANONYMOUS, X-FACEBOOK-PLATFORM
_xmpp-client._tcp
SRV record support- Even runs in the Browser.
Dependencies
- node-xmpp-core:
node-xmpp
core libraries
Optional
- node-stringprep: for icu-based string normalization.
Automatically building the optional library can be turned off by npm config set optional false
or by setting the environmental variable export NPM_CONFIG_OPTIONAL=false
. On Heroku this is done through heroku config:set NPM_CONFIG_OPTIONAL=false
, for example.
Building XML Elements
Strophe.js' XML Builder is very convenient for producing XMPP
stanzas. ltx includes it in a much more primitive way: the
c()
, cnode()
and t()
methods can be called on any Element
object, returning the new child element.
This can be confusing: in the end, you will hold the last-added child
until you use up()
, a getter for the parent. Connection.send()
first invokes tree()
to retrieve the uppermost parent, the XMPP
stanza, before sending it out the wire.
Browser Support
node-xmpp-client
now comes with a prebuilt browser bundle:
<script src="/node_modules/node-xmpp/node-xmpp-browser.js"></script>
<script type="text/javascript">
var client = new XMPP.Client(opts);
</script>
Keepalives
Rather than send empty packets in order to keep any socket alive please try the following:
this.client.connection.socket.setTimeout(0)
this.client.connection.socket.setKeepAlive(true, 10000)
Where this.client
is the result of new require('node-xmpp-client')()
.
Documentation
(Builing up documentation slowly)
C2S Client to Server
var Client = require('node-xmpp-client')
var client = new Client({
jid: 'user@example.com',
password: 'password'
})
client.on('online', function() {
console.log('online')
})
client.on('stanza'), function(stanza) {
console.log('Incoming stanza: ', stanza.toString())
})
Closing a connection
client.end()