code: func (c *Client) send(pkt packet.Generic, async bool) error {
  	// reset keep alive tracker
  	c.tracker.Reset()
  
  	// send packet
  	err := c.conn.Send(pkt, async)
  	if err != nil {
  		return err
  	}
  
  	// log sent packet
  	if c.Logger != nil {
  		c.Logger(fmt.Sprintf("Sent: %s", pkt.String()))
  	}
  
  	return nil
  }
docs: /* helpers */
  // sends packet and updates lastSend