Skip to main content

An Extensible Messaging and Presence Protocol (XMPP) Subprotocol for WebSocket

Approval announcement
Draft of message to be sent after approval:


From: The IESG <>
To: IETF-Announce <>
Cc: RFC Editor <>,
    xmpp mailing list <>,
    xmpp chair <>
Subject: Protocol Action: 'An XMPP Sub-protocol for WebSocket' to Proposed Standard (draft-ietf-xmpp-websocket-10.txt)

The IESG has approved the following document:
- 'An XMPP Sub-protocol for WebSocket'
  (draft-ietf-xmpp-websocket-10.txt) as Proposed Standard

This document is the product of the Extensible Messaging and Presence
Protocol Working Group.

The IESG contact persons are Richard Barnes and Alissa Cooper.

A URL of this Internet Draft is:

Ballot Text

Technical Summary:

This document defines a binding for the XMPP protocol over a
WebSocket transport layer.  A WebSocket binding for XMPP provides
higher performance than BOSH, the current HTTP binding for XMPP 
(which uses HTTP long polling).

Working Group Summary:

Work on a WebSocket binding for XMPP began in 2010 with the first
version of draft-moffitt-xmpp-over-websocket and related code in 
several XMPP projects. Since then, implementation and deployment
experience has led to several changes, most notably:

a. An explicit framing mechanism for opening and closing XMPP steams
   over the WebSocket binding using complete XML elements, instead
   of the opening and closing <stream> and </stream> tags as in the
   TCP binding specified in RFC 6120.

b. An HTTP-based discovery mechanism using Web Host Metadata (RFC 6145)
   and Web Linking (RFC 5988) with a link relation type of
   "urn:xmpp:alt-connections:websocket" consistent with the Alternative
   XMPP Connection Methods specification (XEP-0156) produced by the
   XMPP Standards Foundation.

The framing mechanism has been a matter, not exactly of controversy, but
at least of discussion. The approach settled on in version -01 of this
document (using complete XML elements instead of opening and closing
tags) gained favor among implementers because it is simpler to code for
the target audience of web developers. Once agreement was reached on
this approach, almost all of the server and client implementations were
quickly updated to follow draft-ietf-xmpp-websocket-01. (There are at
least 6 implementations of this specification.)

Although the document has not generated a great deal of traffic on the
XMPP WG mailing list, discussion at IETF 88 (Vancouver) and afterward
among implementers at XMPP Summit 15 (Brussels) was robust, and further
reviews and revisions occurred soon after IETF 89 (London). Version 07
of the document incorporates all of the feedback receieved during those


Who is the Document Shepherd?
  Peter Saint-Andre
Who is the Responsible Area Director?
  Richard Barnes.

RFC Editor Note