Azure Service Bus Java: プロキシ経由で WebSockets 上の AMQP を使用する
Azure Service Bus の Java メッセージング クライアントを、AMQP ライブラリのプロキシ設定を使って WebSockets 上の AMQP に構成します。
Azure Service Bus の最新の Java メッセージング クライアントは AMQP を使用します。プロキシを構成する場合、そのビルダーには AMQP_WEB_SOCKETS が必要です。
azure-messaging-servicebus 7.18.0 では、送信側を次のように構築します。
var address = new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example", 8080));
var proxy = new com.azure.core.amqp.ProxyOptions(
com.azure.core.amqp.ProxyAuthenticationType.BASIC,
address, proxyUser, proxyPassword);
var sender = new com.azure.messaging.servicebus.ServiceBusClientBuilder()
.connectionString(serviceBusConnectionString)
.transportType(com.azure.core.amqp.AmqpTransportType.AMQP_WEB_SOCKETS)
.proxyOptions(proxy)
.sender()
.queueName(queueName)
.buildClient();
アカウントの変数は Basic を受け付けるプロキシに対して認証されます。接続文字列とキュー名は引き続き Service Bus リソースを識別します。作成した送信側は想定された有効期間の間保持し、アプリケーションが使い終わったら閉じます。
ここでは com.azure.core.amqp.ProxyOptions を使用します。Azure の HTTP スタックには似た名前の別のプロキシ オプション クラスがありますが、このビルダーが受け付ける型ではありません。
これによりメッセージング接続が構成されます。独立して作成した ID 資格情報を使用するアプリケーションでは、その資格情報のトークン用 HTTP トランスポートも構成する必要がある場合があります。
古い Azure SDK 0.9 の例は別のクライアント世代を指しています。その構成定数や一般的な HTTP プロパティが最新の AMQP ビルダーを説明していると推測しないでください。