<br><br><div class="gmail_quote">On Wed, May 12, 2010 at 4:31 AM, Simon Pieters <span dir="ltr"><<a href="mailto:simonp@opera.com">simonp@opera.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
establishing a WebSocket connection:<br>
<br>
[[<br>
Note: There is no limit to the number of established WebSocket connections a user agent can have with a single remote host. Servers can refuse to connect users with an excessive number of connections, or disconnect resource-hogging users when suffering high load.<br>

]]<br>
<br>
Still, it seems likely that user agents will want to have limits on the number of established WebSocket connections, whether to a single remote host or multiple remote hosts, in a single tab or overall. The question is what should be done when the user agent-defined limit of established connections has been reached and a page tries to open another WebSocket.<br>

<br>
I think just waiting for other WebSockets to close is not good. It just means that newly loaded pages don't work.<br>
<br></blockquote><div><br></div><div>Agreed, not good. The intent of the api is to start opening a socket now, not at some undefined point in the future after the user has taken some undefined action (hey user... please close a tab that has a socket open... not particularly user actionable).</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
If there are any WebSockets in CLOSING state, then I think we should wait until they have closed. Otherwise, I think we should force close the oldest WebSocket.<br></blockquote><div><br></div><div>Force closing the oldest is not good. A malicious site could cause all open sockets to be closed. Also this would have nasty side effects. Consider a memory allocator that just deleted the oldest allocation to make room for new allocations, far removed things just start failing on odd ways... no thank you.</div>
<div><br></div><div>An obvious way to handle this condition of "too many sockets are open" is to fail to open the new socket with an exception/error which indicates that condition.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888">
<br>
-- <br>
Simon Pieters<br>
Opera Software<br>
</font></blockquote></div><br>