title: Under what circumstance will websocket stop reading from buffer
body: <p>I have a websocket server. It accepts thousands of connections from clients. Read data from and write data to clients. It will work normally for weeks. But something wrong will happen occasionally, maybe once two weeks. In a very short time, the new clients will establish connections to server and send a protocol immediately. The server side websocket.onOpen() will be invoked, but it fails to read the protocol data from client. And later the client may close the connection. But on the server side, the connections will keep in the state of <code>CLOSE_WAIT</code>, but never successfully closed. Via netstat I can see that the <code>CLOSE_WAIT</code> connections' read buffer is not empty and keep that value(never be read). So I guess that the server's failing to read data and the close <code>FIN</code> package leads to the connection to keep in <code>CLOSE_WAIT</code> state.</p>
  
  <p>So I want to know under what circumstance may the websocket fail to read data from reading buffers.  </p>