Käytä luodun asiakkaan kanavantarjoajaa, kun Pub/Sub Java gRPC -yhteys tarvitsee HTTP CONNECT -välityspalvelimen. Tavallinen URLConnection-asetus ei muodosta tätä kanavamääritystä.

topic-admin-asiakkaalle:

var channelProvider = TopicAdminSettings
    .defaultGrpcTransportProviderBuilder()
    .setChannelConfigurator(channel -> channel.proxyDetector(target ->
        HttpConnectProxiedSocketAddress.newBuilder()
            .setProxyAddress(new InetSocketAddress("proxy.example", 8080))
            .setTargetAddress((InetSocketAddress) target)
            .setUsername(proxyUser)
            .setPassword(proxyPassword)
            .build()))
    .build();

var settings = TopicAdminSettings.newBuilder()
    .setTransportChannelProvider(channelProvider)
    .build();
try (TopicAdminClient client = TopicAdminClient.create(settings)) {
    // Perform the application's intended topic-admin operation here.
}

TopicAdminClient ja TopicAdminSettings ovat Pub/Sub v1 -luokkia; HttpConnectProxiedSocketAddress tulee io.grpc-kirjastosta ja InetSocketAddress java.net-kirjastosta. Esimerkki olettaa tämän kanavan käyttämän tavallisen internet-osoitekohteen.

Tunnistin palauttaa välityspalvelinyhteyden osoitteen alkuperäisen kohteen ohella. gRPC-rakentaja edellyttää, että välityspalvelimen osoite on ratkaistu. Jätä palvelun päätepiste Pub/Subiksi: sen korvaaminen välityspalvelimen isäntänimellä kadottaisi palvelukohteen ja aiotun TLS-identiteetin.

Poista käyttäjänimi/salasana-kutsut todennuksettomalle välityspalvelimelle; julkisia HTTP-ehdokkaita on HTTP-välityspalvelinten luettelosta. Ne kutsut ovat HTTP CONNECTin tunnistetietorajapinta, eivät SOCKS tai yleinen NTLM-toteutus.

Jos virhe tapahtuu ennen gRPC-toimea, kun itsenäisesti luotu tunnistetieto saa tunnuksen, tarkista kyseisen tunnistetiedon HTTP-reitti. Se on tässä näytetyn kanavantarjoajan ulkopuolella.

Aiheeseen liittyvät artikkelit