Skip to content

chris-rock/node-xmpp-client

Repository files navigation

node-xmpp-client

Idiomatic XMPP client library for node.js

Now usable in browsers too thanks to Browserify.

build status

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

Optional

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: '[email protected]',
    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()

About

XMPP Client interface for node-xmpp

Resources

License

Stars

Watchers

Forks

Packages

No packages published