Idiomatic XMPP server library for node.js
Please see http://node-xmpp.github.io/doc/nodexmppserver.html for instructions on how to use node-xmpp-server.
Note: We now only support nodejs versions 0.8.0 and greater.
With package manager npm:
npm install node-xmpp-server
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.
Please see the various examples.
- Use node.js conventions, especially
EventEmitter, ie. for write buffer control - Fast parsing,
node-expatwas written for this library - Optional server infrastructure with
Router - After authentication, leave trivial protocol bits to the user, that is XML handling according to any XEP
- Client authentication with SASL DIGEST-MD5, PLAIN, ANONYMOUS, X-FACEBOOK-PLATFORM
_xmpp-client._tcpSRV record support- Simple JID parsing with Stringprep normalization
- Optional now, you won't need ICU for just node-xmpp
- Please be aware if you identify users by JIDs
npm install node-stringprep
- Uses ltx
- Much easier to handle than a standard DOM
- xmlns-aware
- Easy XML builder like Strophe.js (see down)
- Non-buffering serialization
- Was split out of node-xmpp for modularization and resuability
- Component connections
- Run your own server/talk to other servers with
xmpp.Router - XMPP over WebSocket
- XMPP over BOSH
Optional
- node-stringprep: for icu-based string normalization.
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.
- S2S implementation has been sponsored by superfeedr
MIT