code: func (c *Client) registerConnectionEvent() (fab.Registration, chan *dispatcher.ConnectionEvent, error) {
  	if c.Stopped() {
  		return nil, nil, errors.New("event client is closed")
  	}
  
  	eventch := make(chan *dispatcher.ConnectionEvent, c.eventConsumerBufferSize)
  	errch := make(chan error)
  	regch := make(chan fab.Registration)
  	err1 := c.Submit(dispatcher.NewRegisterConnectionEvent(eventch, regch, errch))
  	if err1 != nil {
  		return nil, nil, err1
  	}
  	select {
  	case reg := <-regch:
  		return reg, eventch, nil
  	case err := <-errch:
  		return nil, nil, err
  	}
  }
docs: // registerConnectionEvent registers a connection event. The returned
  // ConnectionEvent channel will be called whenever the client clients or disconnects
  // from the event server