code: func (c *Connection) sendTicker() {
  	c.hbd.sc = 0
  	ticker := time.NewTicker(time.Duration(c.hbd.sti))
  	defer ticker.Stop()
  hbSend:
  	for {
  		select {
  		case <-ticker.C:
  			c.log("HeartBeat Send data")
  			// Send a heartbeat
  			f := Frame{"\n", Headers{}, NULLBUFF} // Heartbeat frame
  			r := make(chan error)
  			if e := c.writeWireData(wiredata{f, r}); e != nil {
  				c.Hbsf = true
  				break hbSend
  			}
  			e := <-r
  			//
  			c.hbd.sdl.Lock()
  			if e != nil {
  				fmt.Printf("Heartbeat Send Failure: %v\n", e)
  				c.Hbsf = true
  			} else {
  				c.Hbsf = false
  				c.hbd.sc++
  			}
  			c.hbd.sdl.Unlock()
  			//
  		case _ = <-c.hbd.ssd:
  			break hbSend
  		case _ = <-c.ssdc:
  			break hbSend
  		} // End of select
  	} // End of for
  	c.log("Heartbeat Send Ends", time.Now())
  	return
  }
docs: /*
  	The heart beat send ticker.
  */