Pub/Sub Java gRPC ulanishiga HTTP CONNECT proksisi kerak bo'lganda yaratilgan mijoz kanal provayderidan foydalaning. Oddiy URLConnection sozlamasi bu kanal konfiguratsiyasini o'rnatmaydi.

topic-admin mijozi uchun:

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 va TopicAdminSettings Pub/Sub v1 sinflari; HttpConnectProxiedSocketAddress io.grpc dan, InetSocketAddress esa java.net dan keladi. Misol ushbu kanal ishlatadigan oddiy internet-manzil maqsadini nazarda tutadi.

Detektor asl maqsad bilan birga proksi ulanish manzilini qaytaradi. gRPC quruvchisi proksi manzil hal qilingan bo'lishini talab qiladi. Xizmat tugash nuqtasini Pub/Sub qilib qoldiring: uni proksi xost nomi bilan almashtirish xizmat maqsadi va ko'zda tutilgan TLS identifikatsiyasini yo'qotadi.

Autentifikatsiyasiz proksi uchun foydalanuvchi nomi/parol chaqiruvlarini olib tashlang; ochiq HTTP nomzodlari HTTP proksilar ro'yxatidan topiladi. Bu chaqiruvlar HTTP CONNECT hisob ma'lumotlari interfeysi, SOCKS yoki umumiy NTLM implementatsiyasi emas.

Agar xato gRPC operatsiyasidan oldin yuz berib, mustaqil yaratilgan hisob ma'lumotlari token olsa, shu ma'lumotlarning HTTP yo'lini tekshiring. Bu bu yerda ko'rsatilgan kanal provayderidan tashqarida.

O'xshash maqolalar