Re: [hybi] hybi Digest, Vol 8, Issue 41

Jamie Lokier <jamie@shareable.org> Sat, 31 October 2009 02:23 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 808343A69AA for <hybi@core3.amsl.com>; Fri, 30 Oct 2009 19:23:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.441
X-Spam-Level:
X-Spam-Status: No, score=-1.441 tagged_above=-999 required=5 tests=[AWL=-0.854, BAYES_00=-2.599, FAKE_REPLY_C=2.012]
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 dBSVHsWEsX+8 for <hybi@core3.amsl.com>; Fri, 30 Oct 2009 19:23:17 -0700 (PDT)
Received: from mail2.shareable.org (mail2.shareable.org [80.68.89.115]) by core3.amsl.com (Postfix) with ESMTP id A69FD3A6781 for <hybi@ietf.org>; Fri, 30 Oct 2009 19:23:17 -0700 (PDT)
Received: from jamie by mail2.shareable.org with local (Exim 4.63) (envelope-from <jamie@shareable.org>) id 1N43cq-0004eN-Sl; Sat, 31 Oct 2009 02:23:32 +0000
Date: Sat, 31 Oct 2009 02:23:32 +0000
From: Jamie Lokier <jamie@shareable.org>
To: Ted Goddard <ted.goddard@icesoft.com>
Message-ID: <20091031022332.GA17680@shareable.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <52F2D33D-DEEF-48CE-B510-1FD322ACBBDB@icesoft.com>
User-Agent: Mutt/1.5.13 (2006-08-11)
Cc: hybi@ietf.org, Jason Duell <jduell.mcbugs@gmail.com>
Subject: Re: [hybi] hybi Digest, Vol 8, Issue 41
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: Sat, 31 Oct 2009 02:23:18 -0000

Ted Goddard wrote:
> Without multiplexing, I expect we will see each Ajax component
> in each page opening its own socket, and multiple pages open
> to the same server is very common (users often forget that
> they already have a window open in their browser) so a hundred
> connections to a single server would not be unexpected.

Yes, this is exactly what I expect to happen.

(I'll add that deliberately opening multiple tabs to the same server
is quite common too.  Like, when you want to read 10 different
articles from the same news/blog site, many people open 10 tabs by
right-clicking from the headline page, let the pages load in the
background, and work their way through them)

Sharing WebSockets between components on different pages is difficult
for the simple reason that browser tabs are quite independent.  (But I
haven't seen anyone advocate that they should use separate HTTP
connections...)

On a single page, Ajax component authors _could_ cooperate so their
components share connections, but how likely is that?

Even with good intentions, it's technically *quite hard* to share
connections between independent components on a single page.

That's because one component sending a large message can block
progress of all other components on the page, if they share.  And one
component taking a long time to accept messages can block all the
others even if it's a short message.

But if they all have separate connections, they do not block each
other, so there's a strong motivation to do that.  It is, after all,
easier to program as well.

That is why I advocate a slightly more advanced multiplexing, akin to
interleaved HTTP chunks, where no component can block the progress of
any others, and chunks can be interleaved in a fair, orderly and
network-efficient manner.  I'm pretty sure that would improve the
browser experience unequivocally for almost everyone.

-- Jamie