[whatwg] Websockets Client API
Harald Alvestrand
harald at alvestrand.no
Tue Feb 22 10:57:01 PST 2011
I went through exactly the same exercise some days ago.
It turns out that the "perfectly clear" specification is the
specification of the Javascript runtime environment, not in the
particular API specification.
<obTangent>Even in that case, I would prefer to see a separate "open"
call. It's just cleaner to have the act of object creation separated
from the act of external communication.</obTangent>.
On 02/21/11 03:51, Robert O'Callahan wrote:
> On Mon, Feb 21, 2011 at 2:34 PM, Bruce Atherton<bruce at callenish.com> wrote:
>
>> Perhaps you are reading a different spec than I am. The only language I see
>> about queuing tasks involves changing the ready state on the Websocket
>> object. There is nothing in there about waiting until a block of other
>> Javascript code has run before making any other event callbacks.
>>
> http://dev.w3.org/html5/websockets/#feedback-from-the-protocol
> For every event in that section, the user-agent must queue a task to fire
> the event. None of the other sections describe any events.
>
> Let me see if I follow the "perfectly clear" line of reasoning you are
>> using. Your assumption is that a Websocket connection will only be loaded in
>> an event handler like window.onload.
>
> In HTML5-compliant user-agents, all Javascript runs in some task of the
> HTML5 event loop. That task must run to completion before other tasks queued
> by the user-agent will run.
>
> No other events will be delivered until the current event handler finishes.
>> And the event handler that creates the Websocket object will necessarily
>> also be where the event handlers are set on the Websocket object. By making
>> all of these assumptions, it becomes obvious that within a browser this API
>> is safe for callbacks. Do I have that right?
>>
> Yes. You observe correctly that the Web author has to be careful to ensure
> that the event handlers are set on the Websocket object during the same task
> that created it. However, this is a fairly natural requirement that is
> common in the Web platform.
>
> I am reminded of a joke about mathematicians. One argues that it is obvious
>> that claim A follows from B. The other disagrees. After arguing for an hour,
>> the latter finally agrees that A obviously follows from B.
>>
> Yeah :-). By "perfectly clear" I meant that the spec was "unambiguous",
> rather than "obvious to the casual reader" :-).
>
> Rob
More information about the whatwg
mailing list