code: func (c *Connection) receiveTicker() {
  	c.hbd.rc = 0
  	var first, last, nd int64
  hbGet:
  	for {
  		nd = c.hbd.rti - (last - first)
  		// Check if receives are supposed to be "fast" *and* we spent a
  		// lot of time in the previous loop.
  		if nd <= 0 {
  			nd = c.hbd.rti
  		}
  		ticker := time.NewTicker(time.Duration(nd))
  		select {
  		case ct := <-ticker.C:
  			first = time.Now().UnixNano()
  			ticker.Stop()
  			c.hbd.rdl.Lock()
  			flr := c.hbd.lr
  			ld := ct.UnixNano() - flr
  			c.log("HeartBeat Receive TIC", "TickerVal", ct.UnixNano(),
  				"LastReceive", flr, "Diff", ld)
  			if ld > (c.hbd.rti + (c.hbd.rti / 5)) { // swag plus to be tolerant
  				c.log("HeartBeat Receive Read is dirty")
  				c.Hbrf = true // Flag possible dirty connection
  			} else {
  				c.Hbrf = false // Reset
  				c.hbd.rc++
  			}
  			c.hbd.rdl.Unlock()
  			last = time.Now().UnixNano()
  		case _ = <-c.hbd.rsd:
  			ticker.Stop()
  			break hbGet
  		case _ = <-c.ssdc:
  			ticker.Stop()
  			break hbGet
  		} // End of select
  	} // End of for
  	c.log("Heartbeat Receive Ends", time.Now())
  	return
  }
docs: /*
  	The heart beat receive ticker.
  */