Meanwhile, Michael's comment supports my (untested) suspicion that the socket connections aren't getting closed when someone leaves the chat without clicking the "Log Off" button. I think that will be a relatively frequent occurence, so it would be nice to figure out how to close those connections down properly. My tests have been pretty limited, with only a couple users in brief chat sessions which generated a number of stale connections, and I wonder what the implications would be for a production environment.
Michael, do you think it's appropriate to handle the stale connections by changing the OS configuration to time them out? It does seem like it would make sense for them to be dropped eventually, because right now they appear to linger indefinitely or until the chat server is restarted.