title: CloseHandler is not called for a gorilla/websocket if I am not reading messages anywhere, I simply get a write error eventually
body: <p>I have a websocket server using gorilla/websocket.</p>
  
  <p>I have a situation where I am simply writing messages to a set of websockets. My custom CloseHandler is never called when I close the websocket on the browser side. </p>
  
  <p>However, adding a goroutine that calls ReadMessage indefinitely (till some error) leads to the CloseHandler being invoked.</p>
  
  <p>Here's the basic idea: 
  In one goroutine, I run something like this:</p>
  
  <pre><code>for {
      for client := range clients {
          client.stream &lt;- data
      }
      time.Sleep(time.Second)
  }
  </code></pre>
  
  <p>and the other code, called in a separate goroutine, one per client:</p>
  
  <pre><code>go (func() {
      // If I call wsock.ReadMessage here, my CloseHandler works!
  })()
  
  for msg := range myclient.stream {
      if err := wsock.WriteMessage(websocket.TextMessage, msg); err != nil {
          break
      }
  }
  </code></pre>
  
  <p>When I close the websocket on the browser side, I expect the CloseHandler to be called, however, it's never called, instead, I eventually get an error on the WriteMessage call.</p>