Subject: [hybi] I-D Action:draft-ietf-hybi-thewebsocketprotocol-07.txt

From: [email-masked]
Date: Fri, 22 Apr 2011 16:00:02 -0700

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the BiDirectional or Server-Initiated HTTP Working Group of the IETF.

	Title           : The WebSocket protocol
	Author(s)       : I. Fette
	Filename        : draft-ietf-hybi-thewebsocketprotocol-07.txt
	Pages           : 57
	Date            : 2011-04-22

The WebSocket protocol enables two-way communication between a user
agent running untrusted code running in a controlled environment to a
remote host that has opted-in to communications from that code.  The
security model used for this is the Origin-based security model
commonly used by Web browsers.  The protocol consists of an initial
handshake followed by basic message framing, layered over TCP.  The
goal of this technology is to provide a mechanism for browser-based
applications that need two-way communication with servers that does
not rely on opening multiple HTTP connections (e.g. using
XMLHttpRequest or <iframe>s and long polling).

Please send feedback to the [email-masked] mailing list.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-hybi-thewebsocketprotocol-07.txt

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

---

From: Andy Green <[email-masked]>
Date: Sat, 23 Apr 2011 10:50:11 +0100

On 04/23/2011 12:00 AM, Somebody in the thread at some point said:

Hi -

> 	Filename        : draft-ietf-hybi-thewebsocketprotocol-07.txt

So if I understood for implementors, aside from clarifying stuff that 
definitely did need clarifying, the changes are:

  1) the opcodes got partitioned differently

  2) there's an "I am masked" bit now controlling if the usual 32-bit 
mask is coming after the frame length - that dude with the "browser can 
be a server" case will be delighted

  3) extended data per-frame concept is gone

All sounds good to me!

-Andy

---

From: Iñaki Baz Castillo <[email-masked]>
Date: Sun, 24 Apr 2011 00:12:28 +0200

>        Filename        : draft-ietf-hybi-thewebsocketprotocol-07.txt

The Appendix "List of Changes", present in 06, is not present anymore.

-- 
Iñaki Baz Castillo
<[email-masked]>

---

From: Patrick McManus <[email-masked]>
Date: Sat, 23 Apr 2011 20:13:42 -0400

> The Appendix "List of Changes", present in 06, is not present anymore.

presumably that is prep to make -07 eligible for WG Last Call... (the
list of changes is just an interim convenience thing).

---

From: Andy Green <[email-masked]>
Date: Sun, 24 Apr 2011 08:20:34 +0100

On 04/23/2011 10:50 AM, Somebody in the thread at some point said:

Hi -

> definitely did need clarifying, the changes are:

I added what I understood as v07 support to libwebsockets:

  http://git.warmcat.com/cgi-bin/cgit/libwebsockets/

If anyone finds any problems let me know.

-Andy

---

From: Julian Reschke <[email-masked]>
Date: Sun, 24 Apr 2011 09:36:07 +0200

Hi there,

this still needs work:

- it's unclear why we define parsing - is the parsing consistent with 
RFC 3986? If yes, why do we have the section? If no, what's the difference?

- it now talks about URIs and doesn't mention IRIs anymore, but still 
considers cases if non-ASII characters.

I still believe that it would be sufficient to define the URI scheme in 
ABNF, and be done with it.

Best regards, Julian

---

From: "Martin J. Dürst" <[email-masked]>
Date: Sun, 24 Apr 2011 17:27:24 +0900

On 2011/04/24 9:13, Patrick McManus wrote:
>> 2011/4/23<[email-masked]>:

> list of changes is just an interim convenience thing).

There is no need to remove such a list now. It can simply be marked with 
a note to the RFC Editor saying something like:
NOTE to RFC Editor: Please remove this section before publication.

For an example, please see
http://tools.ietf.org/html/draft-duerst-mailto-bis-10#section-10

On the other hand, it's also quite easy to check changes mechanically, 
e.g. from this URI:
http://tools.ietf.org/rfcdiff?url2=draft-ietf-hybi-thewebsocketprotocol-07.txt

Overall, I think that because now the changes are more localized, diffs 
work well; they didn't for the early drafts because the changes were too 
large.

Regards,   Martin.

---

From: Anthony Catel <[email-masked]>
Date: Sun, 24 Apr 2011 17:48:52 +0200

Hi,

I just added the support to APE (AJAX Push Engine) :

https://github.com/APE-Project/APE_Server/commit/25574658256eba4eb66f1f1e7cdc0050953d9127

Tested with libwebsockets :

$./libwebsockets-test-ping 127.0.0.1 --port=6969 --protocol=APE 
--version=7 --size=64
Websocket PING localhost (127.0.0.1) 64 bytes of data.
handshake OK for protocol APE
64 bytes from 127.0.0.1: req=1 time=0.0ms
64 bytes from 127.0.0.1: req=2 time=0.0ms
64 bytes from 127.0.0.1: req=3 time=0.0ms
64 bytes from 127.0.0.1: req=4 time=0.0ms
64 bytes from 127.0.0.1: req=5 time=0.0ms
^C
--- localhost websocket ping statistics using 1 connections ---
5 packets transmitted, 5 received, 0% packet loss, time 4304ms
rtt min/avg/max = 0.073/0.080/0.087 ms
payload bandwidth average 0.073 KiBytes/sec
sent close indication, awaiting ack

It works as expected for the moment ;-)

Thanks,

Anthony Catel

Le 24/04/2011 09:20, Andy Green a écrit :
> _______________________________________________
> hybi mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/hybi

---

From: Iñaki Baz Castillo <[email-masked]>
Date: Sun, 24 Apr 2011 20:46:39 +0200

2011/4/24 Julian Reschke <[email-masked]>:
> this still needs work:
>
> - it's unclear why we define parsing - is the parsing consistent with RFC
> 3986? If yes, why do we have the section? If no, what's the difference?

Some happened some revisions ago in which the draft also defined
headers parsing. Later it was stated that the websocket handshake is a
pure HTTP request/response so syntax and parsing was partially removed
from the draft (as it's already defined in RFC 2616).

-- 
Iñaki Baz Castillo
<[email-masked]>

---

From: Brian <[email-masked]>
Date: Mon, 25 Apr 2011 01:32:56 -0700

I've released a node.js client and server implementation of draft-07 on Github.

It works with libwebsockets-test-server and libwebsockets-test-client.
 Still have a little more work to go in implementing Greg Wilkins'
interoperability testing proposal.

More information and full documentation available for your
interoperability-testing pleasure at the following url:

https://github.com/Worlize/WebSocket-Node

Cheers,
Brian

---

From: "Thomson, Martin" <[email-masked]>
Date: Wed, 27 Apr 2011 08:57:19 +0800

> considers cases if non-ASII characters.

+1
 
> I still believe that it would be sufficient to define the URI scheme 
> in ABNF, and be done with it.

Or relying on the ABNF in RFC 3986, enumerate the set of valid components.  As a start: scheme, authority (sans user information), path and query.

--Martin