Re: [hybi] Web sockets and existing HTTP stacks

Jamie Lokier <jamie@shareable.org> Mon, 01 February 2010 11:20 UTC

Return-Path: <jamie@shareable.org>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9B90B3A68AD for <hybi@core3.amsl.com>; Mon, 1 Feb 2010 03:20:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.444
X-Spam-Level:
X-Spam-Status: No, score=-2.444 tagged_above=-999 required=5 tests=[AWL=0.155, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id s76XCQCjNs41 for <hybi@core3.amsl.com>; Mon, 1 Feb 2010 03:20:24 -0800 (PST)
Received: from mail2.shareable.org (mail2.shareable.org [80.68.89.115]) by core3.amsl.com (Postfix) with ESMTP id 501BC28C1D2 for <hybi@ietf.org>; Mon, 1 Feb 2010 03:20:24 -0800 (PST)
Received: from jamie by mail2.shareable.org with local (Exim 4.63) (envelope-from <jamie@shareable.org>) id 1NbuKq-0005Q5-Ij; Mon, 01 Feb 2010 11:20:52 +0000
Date: Mon, 01 Feb 2010 11:20:52 +0000
From: Jamie Lokier <jamie@shareable.org>
To: Mridul Muralidharan <mridulm80@yahoo.com>
Message-ID: <20100201112052.GE20940@shareable.org>
References: <557ae280911200711i5493e654k67c1f5f07336bfb9@mail.gmail.com> <Pine.LNX.4.62.0912032347360.15540@hixie.dreamhostps.com> <4B2C1D52.9020505@webtide.com> <5c902b9e0912181640n497169cdrfa71f9a2908e6ef3@mail.gmail.com> <20091219005442.GA10949@shareable.org> <4B2C287E.1030006@webtide.com> <Pine.LNX.4.64.1001310835410.3846@ps20323.dreamhostps.com> <5821ea241001311219j111d25a3h27fb2d05a2ece32d@mail.gmail.com> <A3BBB919-B5AF-4D7F-930F-63D40DB1B902@surrey.ac.uk> <575139.26808.qm@web95416.mail.in2.yahoo.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <575139.26808.qm@web95416.mail.in2.yahoo.com>
User-Agent: Mutt/1.5.13 (2006-08-11)
Cc: hybi@ietf.org
Subject: Re: [hybi] Web sockets and existing HTTP stacks
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Feb 2010 11:20:31 -0000

Mridul Muralidharan wrote:
> For sharing multiple logical channels over a single underlying
> channel, I had suggested BEEP [1] to the list initially.
> 
> For a more http compliant server side push (simulated ofcourse),
> there is XEP 124 [2] which uses a variant of more robust version of
> long poll - which has been used quite successfully in xmpp space :
> with the caveat that, one of clients connections would need to be
> blocked at the server (within timelimits) for notifications.
> 
> While implementing xmpp on top of http, we had more practical
> reasons why we chose xep 124 (it was a fledging standard when we
> looked at it initially), which was how well you can interact with
> intermediaries which you have no control over : which is what led to
> not pursuing a comet channel approach (reliability issues, proxy
> caching of response (non-compliant at times), etc). We can wish away
> a lot of these issues, but for real world customer deployments - you
> will have to address them anyway.
>
> I am not sure if proper due diligence was done on these, but I
> assume the group has - since I have not followed the discussions of
> the past couple of months.

Don't assume!

Some of us have looked at BEEP in some detail, and based on experience
deploying simular protocols, picked out some issues where it can be
much improved as a multiplexing channel.  In particular, opportunistic
multiplexing, where a user-agent or proxy combines incoming message
streams into fewer connections, doesn't work well within BEEPs
structure - due to channel setup latency, mainly.  BEEP-over-TCP does
offer an approach to the head of line blocking problem though, one I
think all multiplexing protocols should take note of.

There's an attempt to document best practice and issues with HTTP
long-polling and variations in general.  After all, everyone's
developing proprietary protocols over that; it might as well be guided
by collective knowledge.  I'm not sure how that's going.  I haven't
had time to contribute to it myself.

I've never heard of XEP 124, and I don't think I've seen it mentioned
on the list before.  How does it differ from comet style - in
particular, why do you think XEP 124 is robust and comet
insufficiently so?  That could be very useful input into the
long-polling best practice document.

Thanks,
-- Jamie