code: func (rtm *RTM) ping() error {
  	id := rtm.idGen.Next()
  	rtm.Debugln("Sending PING ", id)
  	msg := &Ping{ID: id, Type: "ping", Timestamp: time.Now().Unix()}
  
  	if err := rtm.sendWithDeadline(msg); err != nil {
  		rtm.Debugf("RTM Error sending 'PING %d': %s", id, err.Error())
  		return err
  	}
  	return nil
  }
docs: // ping sends a 'PING' message to the RTM's websocket. If the 'PING' message
  // fails to send then this returns an error signifying that the connection
  // should be considered disconnected.
  //
  // This does not handle incoming 'PONG' responses but does store the time of
  // each successful 'PING' send so latency can be detected upon a 'PONG'
  // response.