XMPP For The Web/Win ::: XMPP-FTW (1.18.0) Flattr this



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.

Getting started...

Beginner and installation guides to come...

Version 1.X Change(s)

Stanza ID spoofing protection

XMPP-FTW now protects users from stanza ID spoofing protection. For more information on this please see this discussion thread: Stanza ID spoofing on the jdev mailing list.


For this demo system we use Primus and Primus-Emitter plugin to handle the websocket connection.

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


http://xmpp-ftw.org is hosted for free by heroku.


Please click on the following links as appropriate:



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:

An extension used for building and parsing commmon pubsub stanzas

Blog posts/Talks


Fork me on GitHub