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
discussions.
Personnel:
Who is the Document Shepherd?
Peter Saint-Andre
Who is the Responsible Area Director?
Richard Barnes.