<div>Yes, but the "closed" state of a given WebSocket doesn't have to exactly match the state of the underlying TCP connection, in the same way that document.cookies doesn'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 "close" event which marks the WebSocket as closed. It means that you could have a situation where you post messages to a WebSocket which aren't received by the server because  the connection is closed, but that'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"><<a href="mailto:darin@chromium.org">darin@chromium.org</a>></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"><<a href="mailto:atwilson@google.com" target="_blank">atwilson@google.com</a>></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"><<a href="mailto:jamesr@google.com" target="_blank">jamesr@google.com</a>></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'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 "who" 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>