1.0.16 • Published 10 years ago

node-xmppclient-bosh v1.0.16

Weekly downloads
1
License
MIT
Repository
-
Last release
10 years ago

node-xmppclient-bosh

This is a fork of the node-xmpp-client - idiomatic XMPP client library for node.js It includes fixes to the BOSH mode, tested with ejabberd Most of this readme is copied from the original, but there is a note on an API documentation error (see below).

Now usable in browsers too thanks to Browserify. To create a bundle run grunt browserify.

Manual

This fork is API compatible with the original, so, except for the IMPORTANT note below, you should refer to the original manual at http://node-xmpp.github.io/doc/nodexmppclient.html.

IMPORTANT NOTE

There is an ERROR in the original manual (probably it's just outdated): The bosh url parameter in the options is not named boshURL. Instead, you should provide an object named 'bosh' with an 'url' property set to the BOSH url.

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')().

1.0.16

10 years ago

1.0.14

10 years ago

1.0.13

10 years ago

1.0.11

10 years ago

1.0.10

10 years ago

1.0.9

10 years ago

1.0.6

10 years ago

1.0.4

10 years ago

1.0.2

10 years ago

1.0.1-alpha10

10 years ago