W3C home > Mailing lists > Public > public-webapps@w3.org > July to September 2012

Re: Lazy Blob

From: Glenn Adams <glenn@skynav.com>
Date: Wed, 1 Aug 2012 11:57:05 -0600
Message-ID: <CACQ=j+fEiLurUA-GcjO3pXyjCzS=8mRQU5uHsUP_joZbRTrpUA@mail.gmail.com>
To: Florian Bösch <pyalot@gmail.com>
Cc: Glenn Maynard <glenn@zewt.org>, Robin Berjon <robin@berjon.com>, WebApps WG <public-webapps@w3.org>, Jungkee Song <jungkee.song@samsung.com>
On Wed, Aug 1, 2012 at 11:13 AM, Florian Bösch <pyalot@gmail.com> wrote:

> On Wed, Aug 1, 2012 at 6:51 PM, Glenn Adams <glenn@skynav.com> wrote:
>
>> I'm questioning defining a "LazyBlob" that is solely usable with XHR. It
>> would be better to have a more generic version IMO.
>>
> Websockets have no content semantics, therefore any lazy content
> negotiating reader cannot deal with websockets unless an additional
> application layer protocol and implementation on the server side is
> introduced, something that does not exist for websockets otherwise. You
> could for instance implement HTTP over websockets to get the content
> semantics, and if your server gets a websocket request, it could be proxied
> to a domain socket which happend to have a webserver listening which would
> understand the HTTP request and deliver the resource/range.
>
> Now instead of implementing HTTP over websockets over HTTP over sockets,
> you could just use XHRs which implement HTTP over sockets. Which is why
> generalising lazy readers to websockets does not make sense.
>

Given the "Simple approach" suggested by DAR:

partial interface BlobBuilder {
>     Blob getBlobFromURL (DOMString url);
> };
> Usage:
> var bb = new BlobBuilder()
> ,   blob = bb.getBlobFromURL("http://specifiction.com/kitten.png");


I don't see why the following isn't feasible:

blob = bb.getBlobFromURL("ws://specifiction.com/image/kitten.png<http://specifiction.com/kitten.png>
")

Or, given the "Using XHR for Options" approach:

partial interface BlobBuilder {
>     Blob getBlobFromURL (XMLHttpRequest xhr);
> };
> Usage:
> var bb = new BlobBuilder()
> ,   xhr = new XMLHttpRequest();
> xhr.open("GET", "/kitten.png", true);
> xhr.setRequestHeader("Authorization", "Basic DEADBEEF");
> var blob = bb.getBlobFromURL(xhr);


why one couldn't have:

partial interface BlobBuilder {
    Blob getBlobFromURL (WebSocket ws);
};

var bb = new BlobBuilder()
,   ws = new WebSocket("ws://specifiction.com/image<http://specifiction.com/kitten.png>
");
ws.onopen = function(){ws.send("kitten.png");}
var blob = bb.getBlobFromURL(ws);
Received on Wednesday, 1 August 2012 17:57:53 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:54 GMT