code: func (k *Kite) NewClient(remoteURL string) *Client {
  	c := &Client{
  		LocalKite:          k,
  		URL:                remoteURL,
  		disconnect:         make(chan struct{}),
  		closeChan:          make(chan struct{}),
  		redialBackOff:      forever,
  		scrubber:           dnode.NewScrubber(),
  		testHookSetSession: nopSetSession,
  		Concurrent:         true,
  		send:               make(chan *message),
  		interrupt:          make(chan error, 1),
  		ctx:                context.Background(),
  		cancel:             func() {},
  	}
  
  	c.OnConnect(c.setContext)
  	c.OnDisconnect(c.closeContext)
  
  	k.OnRegister(c.updateAuth)
  
  	return c
  }
docs: // NewClient returns a pointer to a new Client. The returned instance
  // is not connected. You have to call Dial() or DialForever() before calling
  // Tell() and Go() methods.