استخدم موفّر القناة الخاص بالعميل المولَّد عندما يحتاج اتصال Pub/Sub Java gRPC إلى وكيل HTTP CONNECT. إعداد URLConnection العادي لا ينشئ تهيئة القناة هذه.

لعميل topic-admin:

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 وTopicAdminSettings صنفان من Pub/Sub v1؛ وHttpConnectProxiedSocketAddress يأتي من io.grpc وInetSocketAddress من java.net. يفترض المثال العنوان العادي للإنترنت المستخدم كهدف لهذه القناة.

يعيد الكاشف عنوان اتصال الوكيل إلى جانب الهدف الأصلي. يتطلب مُنشئ gRPC تحليل عنوان الوكيل. اترك نقطة نهاية الخدمة كما هي Pub/Sub: استبدالها باسم مضيف الوكيل يفقد هدف الخدمة وهوية TLS المقصودة.

أزل استدعاءات اسم المستخدم/كلمة المرور للوكيل غير الموثَّق؛ يمكن العثور على مرشحات HTTP العامة في قائمة وكلاء HTTP. تلك الاستدعاءات هي واجهة بيانات اعتماد HTTP CONNECT، وليست SOCKS أو تطبيق NTLM عام.

إذا حدث الفشل قبل عملية gRPC بينما تحصل بيانات اعتماد منشأة بشكل مستقل على رمز، فافحص مسار HTTP لهذه البيانات. وهو خارج موفّر القناة الموضح هنا.

مقالات ذات صلة