HTTP CONNECT ਲਈ Pub/Sub Java ਦਾ gRPC ਚੈਨਲ ਕਨਫ਼ਿਗਰ ਕਰੋ
GAX ਚੈਨਲ ਪ੍ਰੋਵਾਈਡਰ ਰਾਹੀਂ ProxyDetector ਸਥਾਪਤ ਕਰੋ ਅਤੇ Pub/Sub ਦਾ ਟਾਰਗਿਟ ਪਤਾ ਤੇ TLS ਪਛਾਣ ਬਰਕਰਾਰ ਰੱਖੋ।
ਜਦੋਂ 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 ਰਾਹ ਜਾਂਚੋ। ਇਹ ਇੱਥੇ ਦਿਖਾਏ ਚੈਨਲ ਪ੍ਰੋਵਾਈਡਰ ਤੋਂ ਬਾਹਰ ਹੈ।