code: func (b *GRPCBroker) Dial(id uint32) (conn *grpc.ClientConn, err error) {
  	var c *plugin.ConnInfo
  
  	// Open the stream
  	p := b.getStream(id)
  	select {
  	case c = <-p.ch:
  		close(p.doneCh)
  	case <-time.After(5 * time.Second):
  		return nil, fmt.Errorf("timeout waiting for connection info")
  	}
  
  	var addr net.Addr
  	switch c.Network {
  	case "tcp":
  		addr, err = net.ResolveTCPAddr("tcp", c.Address)
  	case "unix":
  		addr, err = net.ResolveUnixAddr("unix", c.Address)
  	default:
  		err = fmt.Errorf("Unknown address type: %s", c.Address)
  	}
  	if err != nil {
  		return nil, err
  	}
  
  	return dialGRPCConn(b.tls, netAddrDialer(addr))
  }
docs: // Dial opens a connection by ID.