From mboxrd@z Thu Jan 1 00:00:00 1970 Delivered-To: chneukirchen@gmail.com Received: by 10.142.191.1 with SMTP id o1cs71940wff; Sun, 13 Dec 2009 16:23:58 -0800 (PST) Received: from mr.google.com ([10.229.111.101]) by 10.229.111.101 with SMTP id r37mr1029787qcp.39.1260750238304 (num_hops = 1); Sun, 13 Dec 2009 16:23:58 -0800 (PST) Received: by 10.229.111.101 with SMTP id r37mr148510qcp.39.1260750236923; Sun, 13 Dec 2009 16:23:56 -0800 (PST) X-BeenThere: rack-devel@googlegroups.com Received: by 10.229.3.146 with SMTP id 18ls1723200qcn.2.p; Sun, 13 Dec 2009 16:23:55 -0800 (PST) Received: by 10.229.47.18 with SMTP id l18mr589378qcf.22.1260750235688; Sun, 13 Dec 2009 16:23:55 -0800 (PST) Received: by 10.229.47.18 with SMTP id l18mr589377qcf.22.1260750235640; Sun, 13 Dec 2009 16:23:55 -0800 (PST) Return-Path: Received: from qw-out-1920.google.com (qw-out-1920.google.com [74.125.92.150]) by gmr-mx.google.com with ESMTP id 25si961489qyk.7.2009.12.13.16.23.54; Sun, 13 Dec 2009 16:23:54 -0800 (PST) Received-SPF: pass (google.com: domain of perera.lakshan@gmail.com designates 74.125.92.150 as permitted sender) client-ip=74.125.92.150; Received: by qw-out-1920.google.com with SMTP id 5so2055353qwc.62 for ; Sun, 13 Dec 2009 16:23:54 -0800 (PST) MIME-Version: 1.0 Received: by 10.229.23.83 with SMTP id q19mr2199926qcb.37.1260750234410; Sun, 13 Dec 2009 16:23:54 -0800 (PST) In-Reply-To: <20091213205355.GB30229@dcvr.yhbt.net> References: <20091211201958.GD2121@dcvr.yhbt.net> <20091213205355.GB30229@dcvr.yhbt.net> Date: Mon, 14 Dec 2009 05:53:53 +0530 Message-ID: Subject: Re: [ANN/RFC] LMGTWTY - Web Sockets for Rack+Rainbows! From: Lakshan Perera To: rack-devel@googlegroups.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of perera.lakshan@gmail.com designates 74.125.92.150 as permitted sender) smtp.mail=perera.lakshan@gmail.com; dkim=pass (test mode) header.i=@gmail.com X-Original-Sender: perera.lakshan@gmail.com Reply-To: rack-devel@googlegroups.com Precedence: list Mailing-list: list rack-devel@googlegroups.com; contact rack-devel+owners@googlegroups.com List-ID: List-Post: , List-Help: , List-Archive: X-Thread-Url: http://groups.google.com/group/rack-devel/t/1214d460ed982748 X-Message-Url: http://groups.google.com/group/rack-devel/msg/8b72224ddb160394 Sender: rack-devel@googlegroups.com List-Unsubscribe: , List-Subscribe: , Content-Type: multipart/mixed; boundary=00163641704bdf5fc8047aa549fd --00163641704bdf5fc8047aa549fd Content-Type: multipart/alternative; boundary=00163641704bdf5fbd047aa549fb --00163641704bdf5fbd047aa549fb Content-Type: text/plain; charset=UTF-8 Hi Eric, This is awesome! Thanks for coming up something like this, in a short period of time. I hope this would be part of Rack, which would enable all Ruby Frameworks to work effortlessly with WebSockets. BTW, I found a small fix is needed to get this work correctly with Google Chrome Beta. As described in Section 3.2 in IETF's "The Web Socket protocol" resource name(uri) needs to be appended when constructing the WebSocket URLs. This needs to be adhered in the WebSocket-Location value of the handshake header. I have attached a patch which fulfills this requirement. -- Lakshan On Mon, Dec 14, 2009 at 2:23 AM, Eric Wong wrote: > Eric Wong wrote: > > I've started getting Web Sockets going for Rainbows! (git version-only). > > > > If people like it, maybe this can be put into Rack itself (and it'll > > have a better name and more exposure). > > I'm going to call it Sunshowers for now, the old name was too hard > for other folks to remember. > > I'm going to make a release of both Rainbows!+Sunshowers later > today, but the git versions should be ready to play with. > > -- > Eric Wong > --00163641704bdf5fbd047aa549fb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Eric,

This is awesome! Thanks for coming up something like this, = in a short period of time.
I hope this would be part of Rack, which woul= d enable all Ruby Frameworks to work effortlessly with WebSockets.

BTW, I found a small fix is needed to get this work correctly with Google C= hrome Beta. As described in Section 3.2 in IETF's "= ;The Web Socket protocol" resource name(uri) needs to be appended when= constructing the WebSocket URLs. This needs to be adhered in the WebSocket= -Location value of the handshake header.

I have attached a patch which fulfills this requirement.

--
L= akshan

On Mon, Dec 14, 2009 at 2:23 AM, E= ric Wong <nor= malperson@yhbt.net> wrote:
Eric Wong <normalperson@yhbt.n= et> wrote:
> I've started getting Web Sockets going for= Rainbows! (git version-only).
>
> If people like it, maybe this can be put into Rack itself (and it'= ll
> have a better name and more exposure).

I'm going to call it Sunshowers for now, the old name was too har= d
for other folks to remember.

I'm going to make a release of both Rainbows!+Sunshowers later
today, but the git versions should be ready to play with.

--
Eric Wong

--00163641704bdf5fbd047aa549fb-- --00163641704bdf5fc8047aa549fd Content-Type: application/octet-stream; name="resource_name_fix.diff" Content-Disposition: attachment; filename="resource_name_fix.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g36i2at70 RnJvbSA5NDY1ZmM3YjAwZTMxMGU1ZTdmZDg1ZWViYzg4ODRhOTk5MjM0Mzk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYWtzaGFuIDxsYWtzaGFuQHdlYjJtZWRpYS5uZXQ+CkRhdGU6 IE1vbiwgMTQgRGVjIDIwMDkgMDU6MDE6MDcgKzA1MzAKU3ViamVjdDogW1BBVENIXSBhcHBlbmQg dGhlIHJlc291cmNlIG5hbWUgdG8gd3NfbG9jYXRpb24gCgotLS0KIGxpYi9zdW5zaG93ZXJzL3dl Yl9zb2NrZXQucmIgfCAgICA2ICsrKysrKwogMSBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMo KyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL3N1bnNob3dlcnMvd2ViX3NvY2tl dC5yYiBiL2xpYi9zdW5zaG93ZXJzL3dlYl9zb2NrZXQucmIKaW5kZXggYzljZWI4ZC4uYWQ0YmNl NCAxMDA2NDQKLS0tIGEvbGliL3N1bnNob3dlcnMvd2ViX3NvY2tldC5yYgorKysgYi9saWIvc3Vu c2hvd2Vycy93ZWJfc29ja2V0LnJiCkBAIC01OCw2ICs1OCwxMSBAQCBtb2R1bGUgU3Vuc2hvd2Vy cwogICAgICAgcHJvdG9jb2wKICAgICBlbmQKIAorICAgICMgcmV0dXJucyB0aGUgcmVxdWVzdGVk IHJlc291cmNlIG5hbWUKKyAgICBkZWYgd3NfcmVzb3VyY2VfbmFtZQorICAgICAgQGVudlsiUkVR VUVTVF9VUkkiXQorICAgIGVuZAorCiAgICAgIyByZXR1cm5zIHRoZSB3czovLy4uLiBvciB3c3M6 Ly8uLi4gVVJMCiAgICAgZGVmIHdzX2xvY2F0aW9uCiAgICAgICBzID0gd3Nfc2NoZW1lCkBAIC02 NSw2ICs3MCw3IEBAIG1vZHVsZSBTdW5zaG93ZXJzCiAgICAgICBpZiAocyA9PSAid3NzIiAmJiBw b3J0ICE9IDQ0MykgfHwgKHMgPT0gIndzIiAmJiBwb3J0ICE9IDgwKQogICAgICAgICBydiA8PCAi OiN7cG9ydH0iCiAgICAgICBlbmQKKyAgICAgIHJ2IDw8IHdzX3Jlc291cmNlX25hbWUgI2NvbmNh dCB0aGUgcmVzb3VyY2UgbmFtZQogICAgICAgcnYKICAgICBlbmQKIAotLSAKMS42LjUuMgoK --00163641704bdf5fc8047aa549fd--