bot18
Version:
A high-frequency cryptocurrency trading bot by Zenbot creator @carlos8f
92 lines (58 loc) • 3.13 kB
Markdown
# node-xmpp-core
Library to handle all the core functionality for:
* [node-xmpp-client](https://github.com/node-xmpp/node-xmpp-client)
* [node-xmpp-component](https://github.com/node-xmpp/node-xmpp-component)
* [node-xmpp-server](https://github.com/node-xmpp/node-xmpp-server)
[](http://travis-ci.org/node-xmpp/node-xmpp-core)
[](https://coveralls.io/r/node-xmpp/node-xmpp-core)
[](http://standardjs.com/)
## Installation
__Note:__ We now only support Node.js versions 0.8.0 and greater.
With package manager [npm](http://npmjs.org/):
npm install node-xmpp-core
### Testing
Install the dev dependencies, then...
```
npm test
```
Also see the tests run in [travis](http://travis-ci.org/node-xmpp/node-xmpp-core). The tests in travis run both the code and code style tests.
## How to use
Please use one of `node-xmpp-client/component/server`
## Objectives of *node-xmpp-core:*
* Use node.js conventions, especially `EventEmitter`, ie. for write
buffer control
* Fast parsing, `node-expat` was written for this library
## Configurations
### serialized
Set this option as `true` to enable the optimization for continuous TCP streams. If your "socket" actually transports frames (WebSockets) and you can't have stanzas split across those, do not enable it.
**type:** boolean
**default:** `false`
## Features
* 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](http://github.com/astro/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
## Dependencies
* [ltx](http://github.com/node-xmpp/ltx)
Optional
* [node-stringprep](http://github.com/node-xmpp/node-stringprep): for [icu](http://icu-project.org/)-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.
# Documentation
(Builing up documentation slowly)
## JID Manipulation
...coming soon...