<div>Yes, but the &quot;closed&quot; state of a given WebSocket doesn&#39;t have to exactly match the state of the underlying TCP connection, in the same way that document.cookies doesn&#39;t exactly match the current set of cookies that the network stack may be tracking (they can differ when HTTP responses are received in the background while JS is executing).</div>
<div><br></div><div>So if the remote server closes the TCP connection, it generates a &quot;close&quot; event which marks the WebSocket as closed. It means that you could have a situation where you post messages to a WebSocket which aren&#39;t received by the server because  the connection is closed, but that&#39;s true regardless due to the asynchronous nature of the networking protocol.</div>
<div><br></div><div>-atw</div><div><br><div class="gmail_quote">On Fri, Jun 26, 2009 at 9:52 AM, Darin Fisher <span dir="ltr">&lt;<a href="mailto:darin@chromium.org">darin@chromium.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5"><div class="gmail_quote">On Fri, Jun 26, 2009 at 9:46 AM, Drew Wilson <span dir="ltr">&lt;<a href="mailto:atwilson@google.com" target="_blank">atwilson@google.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><br><div class="gmail_quote">On Fri, Jun 26, 2009 at 9:18 AM, James Robinson <span dir="ltr">&lt;<a href="mailto:jamesr@google.com" target="_blank">jamesr@google.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><div>However, users can&#39;t usefully check the readyState to see if the WebSocket is still open because there are not and cannot be any synchronization guarantees about when the WebSocket may close. </div>


<div><br></div></span></blockquote><div> </div></div></div>Is this true? Based on our prior discussion surrounding cookies, it seems like as a general rule we try to keep state from changing dynamically while JS code is executing for exactly these reasons.
</blockquote></div><br><div><br></div></div></div><div>I think this is a very different beast.  The state of a network connection may change asynchronously whether we like it or not.  Unlike &quot;who&quot; may access cookies or local storage, the state of the network connection is not something we solely control.</div>

<div><br></div><font color="#888888"><div>-Darin</div>
</font></blockquote></div><br></div>