The easiest part of your question is the browser update part. IE, FF, and Chrome will close the open connection and open a new one. I think any other browser will do the same.
I can only guess points 1 and 3: if the client can still close the tcp connection, the server will immediately know that the connection has been closed. If you are using tomcat, the onClose method of the MessageInbound instance is called.
If the client could not close the tcp connection, the server will wait for some timeout. The server, of course, quickly overheats when it tries to write something to the socket. To do this, you can implement a heart rate mechanism. Websockets seems to have the ability to auto-beat, but not all browsers and servers seem to support it.
source share