Subject: [hybi] Serf support for BWTP

From: Justin Erenkrantz <[email-masked]>
Date: Fri, 18 Dec 2009 00:32:10 -0800

Hi hybi@,

Out of some stuff that's been done with CREST [1], I got pointed at
BWTP and decided to implement it in Serf [2].  A colleague of mine at
UC Irvine is implementing BWTP with PLT Scheme for some CREST stuff
he's doing.  (In short, CREST would benefit from having an async
protocol.)

If ya'll haven't followed the Twitter conversation between me and
Hixie over the last few days, I've pretty much come to the same
conclusions regarding "Web Sockets" RFC that Greg Wilkins did much
earlier.  (Kudos to Greg!)  I guess that Hixie has tried to write his
RFC drafts in a way that stresses one particular way of writing a
client - but for a pure async client library like Serf, the
description in the RFC is pretty impenetrable...and, in my mind, not
very helpful when it comes to writing an independent implementation.
So, I found BWTP a lot easier to implement...and so I did.

The BWTP implementation in Serf isn't perfect and there's probably
more to do, but it'll suffice for now.  Though there do seem to be
some errors in the BWTP RFC, but I'm not sure if Greg is updating the
BWTP RFC drafts or not.  If so, I'm happy to post about those apparent
errors as well.

Anyway, Hixie asked that I subscribe/post to the IETF list, so here I
am.  =)  -- justin

1. http://www.erenkrantz.com/CREST/
2. http://code.google.com/p/serf/

---

From: Pieter Hintjens <[email-masked]>
Date: Fri, 18 Dec 2009 13:10:31 +0100

Hi Justin,

Interesting to know you have a Serf implementation.  If you like you
can add it to the long and growing list of BWTP implementations at
http://bwtp.wikidot.com/main:implementations.

-Pieter

On Fri, Dec 18, 2009 at 9:32 AM, Justin Erenkrantz
<[email-masked]> wrote:
> _______________________________________________
> hybi mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/hybi
>
>

---

From: Justin Erenkrantz <[email-masked]>
Date: Fri, 18 Dec 2009 09:41:36 -0800

> http://bwtp.wikidot.com/main:implementations.

Ha!  Done.  -- justin

---

From: Greg Wilkins <[email-masked]>
Date: Sat, 19 Dec 2009 11:35:30 +1100

Justin,

Wow! cool!   Working code rules!!!

However, what I'd like to do with BWTP is to update it so that
it can be easily and efficiently sent over websocket (using
binary framing) or sent over it's own connection (more or less
as currently specified).

But currently I'm spending most of my time on Jetty's websocket
implementation (and using it in cometd), to make sure that we
have the best websocket implementation that there is... and
then we can still say that we hate it and that it is not because
we don't support it :)

cheers

---

From: Justin Erenkrantz <[email-masked]>
Date: Fri, 18 Dec 2009 16:45:44 -0800

> Wow! cool!   Working code rules!!!

Yah, I find it largely pointless to talk about protocols without
having an implementation to back up what I'm saying.  *grin*

> binary framing) or sent over it's own connection (more or less

Hmm.  I'm not quite sure I grok how you would tunnel over websocket, but maybe.

> then we can still say that we hate it and that it is not because

Perhaps instead of reading the websocket RFC draft (which I can't
understand anyway), I should look at Jetty's websocket implementation.
 That might make more sense to me...  *grin*  -- justin

---

From: Greg Wilkins <[email-masked]>
Date: Sat, 19 Dec 2009 12:03:37 +1100

>  That might make more sense to me...  *grin*  -- justin

http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-websocket/src/main/java/org/eclipse/jetty/websocket/

But no guarantees it is correct.

cheers