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


This page covers using XMPP-FTW from the browser. You may also want to check out the demo and the chat client.


Functionality XEP Module Status Notes
XMPP Core XMPP-Core xmpp-ftw
  • Login
  • logout
  • roster
  • presence
  • chat
Chat includes XEP-0085 support.
Data Forms XEP-0004 xmpp-ftw

Jabber RPC XEP-0009 xmpp-ftw-rpc
Service Discovery XEP-0030 xmpp-ftw-disco
Supports XEP-0128
Multi-user Chat XEP-0045 xmpp-ftw-muc
Supports XEP-0085
Ad-Hoc Commands XEP-0050 xmpp-ftw-command
Jabber Search XEP-0055 xmpp-ftw-search
Result Set Management XEP-0059 xmpp-ftw
Publish Subscribe XEP-0060 xmpp-ftw-pubsub
Out of band data XEP-0066 xmpp-ftw
HTTP requests XEP-0070 xmpp-ftw-http
In-Band registration XEP-0077 xmpp-ftw-register
User Avatar XEP-0084 xmpp-ftw-avatar
Chat state (see example) XEP-0085 xmpp-ftw
Entity Capabilities XEP-0115 xmpp-ftw
Service discovery extensions XEP-0128 xmpp-ftw-disco
Jingle XEP-0166 xmpp-ftw-jingle
Message delivery receipts XEP-0184 xmpp-ftw
XMPP Ping XEP-0199 xmpp-ftw-ping
Delayed delivery XEP-0203 xmpp-ftw
Last message correction XEP-0308 xmpp-ftw
Message Archive Management/MAM XEP-0313 xmpp-ftw-mam
Unknown stanzas N/A xmpp-ftw-wtf
Superfeedr N/A xmpp-ftw-superfeedr
buddycloud N/A xmpp-ftw-buddycloud
fanout N/A xmpp-ftw-fanout

Colour conventions

These colour conventions are also carried over into the demo client.

Outgoing message
Incoming message
Example data


JIDs are always sent as an object as follows:

            "user": "lloyd",
            "domain": "evilprofessor.co.uk",
            "resource": "laptop"


Errors are delivered in the following form:

            type: "auth",
         /* condition: "forbidden", */
         /* description: "Only owners can configure rooms" */
         /* application: { 
                condition: 'too-many-users',
                /* xmlns: 'my:custom:ns', */
                /* description: 'We\'re still in beta' */
            } */

Client errors

Client errors follow a similar format to standard XMPP error responses. An example error looks like this:

            type: "modify",
            condition: "client-error",
            description: "Missing JID parameter",
            request: { message: "Hello you!" }

If the request included a callback this will be sent back as the first argument (i.e. 'error' variable), otherwise the message will come back as a xmpp.error.client event.

Note: use of 'bad-request' was avoided to ensure that a client → XMPP-FTW was discernible from a pure client → XMPP error.

XMPP Server disconnection

If your XMPP server closes the connection then you will be informed via xmpp.error as follows:

            type: "connection",
            condition: "disconnected",
            description: "XMPP client disconnected"


Fork me on GitHub