code: func (c *Client) Close() error {
  	c.closedLock.Lock()
  	defer c.closedLock.Unlock()
  
  	if c.closed {
  		return nil
  	}
  	c.closed = true
  	c.client.GoAway() // Notify the other side of the close
  	return c.client.Close()
  }
docs: // Close is used to terminate the client connection