[whatwg] Issues with Web Sockets API

Michael Nordman michaeln at google.com
Fri Jun 26 15:47:48 PDT 2009


On Fri, Jun 26, 2009 at 3:33 PM, Drew Wilson <atwilson at google.com> wrote:

>
>
> On Fri, Jun 26, 2009 at 3:25 PM, Michael Nordman <michaeln at google.com>wrote:
>
>>
>>
>> On Fri, Jun 26, 2009 at 3:16 PM, Drew Wilson <atwilson at google.com> wrote:
>>
>>>
>>>
>>> On Fri, Jun 26, 2009 at 2:11 PM, James Robinson <jamesr at google.com>wrote:
>>>
>>>>
>>>>
>>>> Forcing applications to build their own send/ack functionality would be
>>>> pretty tragic considering that WebSockets are built on top of TCP.
>>>>
>>>> - James
>>>>
>>>
>>> Every time I've written a response/reply protocol on TCP I've needed to
>>> put in my own acks - how else do you know your message has been delivered to
>>> the remote app layer?
>>>
>>
>> Classic networking problem... if you do send the ack... how does the ack
>> sender know the other side has received it... and so on.
>>
>
>
> Precisely, and complicated by the fact that the app layers I've worked with don't actually expose TCP acks to the app, so you can't even tell that the remote side has acked your packets.
>
>
>>
>>
>>>
>>> One could argue that WebSockets should do this for you, but I like
>>> leaving this up to the app as it gives them more flexibility.
>>>
>>
>> Yes.
>>
>> But knowing if the data your queuing to be sent is backing up in your
>> local system instead of being pushed out is different than knowing if the
>> remote side has received it and processed it. The former can be done w/o
>> changing the websocket network protocol, the latter cannot.
>>
>
> Is the "queued up data is backing up" problem any different from somebody
> doing a ton of async XHR requests, some of which may need to be queued
> before being sent?
>

No. But the difference is each XHR tells you when its been sent and gives
you the response when its received. With this info, apps can rate limit
things. WebSocket.postMessage doesn't tell you when that message has been
sent.

Suppose your sending 'i'm alive' messages. If the message you sent 5 minutes
ago hasn't really been sent, you wouldn't want to queue another 'i'm alive'.

If you're uploading a large data set incrementally across many distinct
postMessage calls (perhaps to leave room for other control messages
interspersed amoungst them, or to present progress info), how do you know
when to queue more data to be sent.



>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20090626/e3cb33fb/attachment.htm>


More information about the whatwg mailing list