code: func (c *Connection) handleReadError(md MessageData) {
  	c.log("HDRERR", "starts", md)
  	c.shutdownHeartBeats() // We are done here
  	// Notify any general subscriber of error
  	select {
  	case c.input <- md:
  	default:
  	}
  	// Notify all individual subscribers of error
  	// This is a read lock
  	c.subsLock.RLock()
  	if c.connected {
  		for key := range c.subs {
  			c.subs[key].md <- md
  		}
  	}
  	c.subsLock.RUnlock()
  	// Try to catch the writer
  	close(c.wtrsdc)
  	c.log("HDRERR", "ends")
  	// Let further shutdown logic proceed normally.
  	return
  }
docs: /*
  	Read error handler.
  */