- From: poot <cvsmail@w3.org>
- Date: Fri, 27 May 2011 17:40:17 -0400
- To: public-html-diffs@w3.org
websocket; hixie: WebSocket: Add support for close codes and reasons
(whatwg r6154)
http://dev.w3.org/cvsweb/html5/websockets/Overview.html?r1=1.213&r2=1.214&f=h
http://html5.org/tools/web-apps-tracker?from=6153&to=6154
===================================================================
RCS file: /sources/public/html5/websockets/Overview.html,v
retrieving revision 1.213
retrieving revision 1.214
diff -u -d -r1.213 -r1.214
--- Overview.html 27 May 2011 00:24:17 -0000 1.213
+++ Overview.html 27 May 2011 21:39:02 -0000 1.214
@@ -422,7 +422,7 @@
attribute <span>Function</span> <a href="#handler-websocket-onerror" title="handler-WebSocket-onerror">onerror</a>;
attribute <span>Function</span> <a href="#handler-websocket-onclose" title="handler-WebSocket-onclose">onclose</a>;
readonly attribute DOMString <a href="#dom-websocket-protocol" title="dom-WebSocket-protocol">protocol</a>;
- void <a href="#dom-websocket-close" title="dom-WebSocket-close">close</a>();
+ void <a href="#dom-websocket-close" title="dom-WebSocket-close">close</a>(in optional unsigned short code, in optional DOMString reason);
// messaging
attribute <span>Function</span> <a href="#handler-websocket-onmessage" title="handler-WebSocket-onmessage">onmessage</a>;
@@ -550,72 +550,89 @@
subprotocol selected by the server, if any. It can be used in
conjunction with the array form of the constructor's second argument
to perform subprotocol negotiation.<p>The <dfn id="dom-websocket-close" title="dom-WebSocket-close"><code>close()</code></dfn>
- method must run the first matching steps from the following list:<dl class="switch"><dt>If the <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code>
- attribute is in the <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code> (2) or <code title="dom-WebSocket-CLOSED"><a href="#dom-websocket-closed">CLOSED</a></code> (3) state</dt>
+ method must run the following steps:<ol><li><p>If the method's first argument is present but is not an
+ integer equal to 1000 or in the range 3000 to 4999, throw an
+ <code>INVALID_ACCESS_ERR</code> exception and abort these
+ steps.</li>
- <dd>
+ <li><p>Run the first matching steps from the following list:</p>
- <p>Do nothing.</p>
+ <dl class="switch"><dt>If the <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code>
+ attribute is in the <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code> (2) or <code title="dom-WebSocket-CLOSED"><a href="#dom-websocket-closed">CLOSED</a></code> (3) state</dt>
- <p class="note">The connection is already closing or is already
- closed. If it has not already, a <code title="event-close">close</code> event will eventually fire <a href="#closeWebSocket">as described below</a>.</p>
+ <dd>
- </dd>
+ <p>Do nothing.</p>
+ <p class="note">The connection is already closing or is already
+ closed. If it has not already, a <code title="event-close">close</code> event will eventually fire <a href="#closeWebSocket">as described below</a>.</p>
- <dt>If the WebSocket connection is not yet <span title="WebSocket
- connection is established">established</span> <a href="#refsWSP">[WSP]</a></dt>
+ </dd>
- <dd>
- <p><span>Fail the WebSocket connection</span> and set the <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code> attribute's
- value to <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code> (2).
- <a href="#refsWSP">[WSP]</a></p>
+ <dt>If the WebSocket connection is not yet <span title="WebSocket
+ connection is established">established</span> <a href="#refsWSP">[WSP]</a></dt>
- <p class="note">The "<span>fail the WebSocket connection</span>"
- algorithm invokes the "<span>close the WebSocket
- connection</span>" algorithm, which then establishes that the
- "<span>WebSocket connection is closed</span>", which fires the
- <code title="event-close">close</code> event <a href="#closeWebSocket">as described below</a>.</p>
+ <dd>
- </dd>
+ <p><span>Fail the WebSocket connection</span> and set the <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code> attribute's
+ value to <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code> (2).
+ <a href="#refsWSP">[WSP]</a></p>
+ <p class="note">The "<span>fail the WebSocket connection</span>"
+ algorithm invokes the "<span>close the WebSocket
+ connection</span>" algorithm, which then establishes that the
+ "<span>WebSocket connection is closed</span>", which fires the
+ <code title="event-close">close</code> event <a href="#closeWebSocket">as described below</a>.</p>
- <dt>If the WebSocket closing handshake has not yet been <span title="the WebSocket closing handshake has
- started">started</span> <a href="#refsWSP">[WSP]</a></dt>
+ </dd>
- <dd>
- <p><span>Start the WebSocket closing handshake</span> and set the
- <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code>
- attribute's value to <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code> (2). <a href="#refsWSP">[WSP]</a></p>
+ <dt>If the WebSocket closing handshake has not yet been <span title="the WebSocket closing handshake has
+ started">started</span> <a href="#refsWSP">[WSP]</a></dt>
- <p class="note">The "<span>start the WebSocket closing
- handshake</span>" algorithm eventually invokes the "<span>close
- the WebSocket connection</span>" algorithm, which then establishes
- that the "<span>WebSocket connection is closed</span>", which
- fires the <code title="event-close">close</code> event <a href="#closeWebSocket">as described below</a>.</p>
+ <dd>
- </dd>
+ <p><span>Start the WebSocket closing handshake</span> and set the
+ <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code>
+ attribute's value to <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code> (2). <a href="#refsWSP">[WSP]</a></p>
+ <p>If the first argument is present, then the status
+ code<!--CLOSE CODE--> to use in the WebSocket Close message must
+ be the integer given by the first argument. <a href="#refsWSP">[WSP]</a></p>
- <dt>Otherwise</dt>
+ <p>If the second argument is also present, then it must be
+ encoded as UTF-8 and provided in the Close message after the
+ status code<!--CLOSE CODE-->. <a href="#refsWSP">[WSP]</a></p>
- <dd>
+ <p class="note">The "<span>start the WebSocket closing
+ handshake</span>" algorithm eventually invokes the "<span>close
+ the WebSocket connection</span>" algorithm, which then establishes
+ that the "<span>WebSocket connection is closed</span>", which
+ fires the <code title="event-close">close</code> event <a href="#closeWebSocket">as described below</a>.</p>
- <p>Set the <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code> attribute's
- value to <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code>
- (2).</p>
+ </dd>
- <p class="note"><span>The WebSocket closing handshake has
- started</span>, and will eventually invokethe "<span>close the
- WebSocket connection</span>" algorithm, which will establish that
- the "<span>WebSocket connection is closed</span>", and thus the
- <code title="event-close">close</code> event will fire, <a href="#closeWebSocket">as described below</a>.</p>
- </dd>
+ <dt>Otherwise</dt>
- </dl><hr><p>The <dfn id="dom-websocket-bufferedamount" title="dom-WebSocket-bufferedAmount"><code>bufferedAmount</code></dfn>
+ <dd>
+
+ <p>Set the <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code> attribute's
+ value to <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code>
+ (2).</p>
+
+ <p class="note"><span>The WebSocket closing handshake has
+ started</span>, and will eventually invokethe "<span>close the
+ WebSocket connection</span>" algorithm, which will establish that
+ the "<span>WebSocket connection is closed</span>", and thus the
+ <code title="event-close">close</code> event will fire, <a href="#closeWebSocket">as described below</a>.</p>
+
+ </dd>
+
+ </dl></li>
+
+ </ol><hr><p>The <dfn id="dom-websocket-bufferedamount" title="dom-WebSocket-bufferedAmount"><code>bufferedAmount</code></dfn>
attribute must return the number of bytes of UTF-8 text that have
been queued using <code title="dom-WebSocket-send"><a href="#dom-websocket-send">send()</a></code> but
that, as of the last time the <span>event loop</span> started
@@ -857,8 +874,8 @@
connection is established">an established connection</span> that has
data queued to be transmitted to the network must not be garbage
collected. <a href="#refsWSP">[WSP]</a><p>If a <code><a href="#websocket">WebSocket</a></code> object is garbage collected while its
- connection is still open, the user agent must <span>close the
- WebSocket connection</span>. <a href="#refsWSP">[WSP]</a><h2 class="no-num" id="references">References</h2><p>All references are normative unless marked "Non-normative".</p><dl><dt id="refsCOOKIES">[COOKIES]</dt>
+ connection is still open, the user agent must <span>start the
+ WebSocket closing handshake</span>, with no status code for the Close message. <a href="#refsWSP">[WSP]</a><h2 class="no-num" id="references">References</h2><p>All references are normative unless marked "Non-normative".</p><dl><dt id="refsCOOKIES">[COOKIES]</dt>
<dd><cite><a href="http://tools.ietf.org/html/draft-ietf-httpstate-cookie">HTTP State
Management Mechanism</a></cite>, A. Barth. IETF.</dd>
Received on Friday, 27 May 2011 21:40:19 UTC