XMPP using JSON

Introduction

The goal of this project is to make XMPP really simple to use for developers. This module takes
away all of the XML and works by hooking to events which are passed between client and server
using a transport in JSON. In the example code we use socket.io, but there is no reason this
can not be replaced with engine.io, or implement your own transport and pass in as a connection.

The examples on this site use primus to handle
data transport and will attempt to use websockets before attempting to use alternative connection types.

Primus

With version 2.0.0 of Primus Emitter emit is no longer used on the socket object
to send a message. Instead send is used. If using another websocket library please
ensure that you have a send method (that replicates emit).

Architecture

XMPP-FTW is made up of a group of modules. The main XMPP-FTW module
includes code for handling login/logout, presence, chat, and roster. In
addition to this it also includes small amounts of code to handle common
occurances in XMPP e.g. data forms (XEP-0004).

All other code is (or is in the process of being) broken into
separate modules. The current status of the modules is listed below:

The main XMPP-FTW repo. Handles authentication, roster, presence,
and chat. Includes small pieces of code that are seen frequently in
XMPP (e.g. data form parsing)

Jabber RPC (XEP-0009) extension for XMPP-FTW

DISCO (XEP-0030) extension for XMPP-FTW

Multi User Chat/MUC (XEP-0045) extension for XMPP-FTW

Ad-Hoc Commands (XEP-0050) extension for XMPP-FTW

Jabber Search (XEP-0055) extension for XMPP-FTW

Publish-Subscribe / PubSub (XEP-0060) extension for XMPP-FTW

Verifying HTTP requests (XEP-0070) extension for XMPP-FTW

In-Band Registration (XEP-0077) extension for XMPP-FTW

User Avatar (XEP-0084) extension for XMPP-FTW

Jingle (XEP-0166) extension for XMPP-FTW

XMPP Ping (XEP-0199) extension for XMPP-FTW

Message Archive Management/MAM (XEP-0313) extension for XMPP-FTW

Superfeedr extension for XMPP-FTW

buddycloud extension for XMPP-FTW

Fanout.io extension for XMPP-FTW

Additional components

There are also several smaller components which can be used seperately to
XMPP-FTW which perform useful utility tasks. These are listed below: