যখন 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 পরিচয় হারাবে।

অপ্রমাণিত প্রক্সির জন্য username/password কলগুলি সরান; সর্বজনীন HTTP প্রার্থী HTTP প্রক্সির তালিকায় পাওয়া যায়। ওই কলগুলি HTTP CONNECT শংসাপত্র ইন্টারফেস, SOCKS বা সাধারণ NTLM বাস্তবায়ন নয়।

যদি gRPC কাজের আগেই ব্যর্থতা ঘটে এবং স্বতন্ত্রভাবে তৈরি শংসাপত্র একটি টোকেন পায়, তবে সেই শংসাপত্রের HTTP পথ পরীক্ষা করুন। এটি এখানে দেখানো চ্যানেল প্রোভাইডারের বাইরে।

সম্পর্কিত নিবন্ধ