Azure Web PubSub サービス は、開発者がリアルタイム機能と発行/サブスクライブ パターンを使用して Web アプリケーションを簡単に構築するのに役立つ Azure マネージド サービスです。 サーバーとクライアント間、またはクライアント間でリアルタイムの発行/サブスクライブ メッセージングを必要とするシナリオでは、Azure Web PubSub サービスを使用できます。 サーバーからのポーリングや HTTP 要求の送信が必要な従来のリアルタイム機能でも、Azure Web PubSub サービスを使用できます。
この記事では、Azure Web PubSub サービス クライアント ライブラリについて説明します。
次の図に示すように、サーバー側アプリでこのライブラリを使用して WebSocket クライアント接続を管理できます。
このライブラリを使用して、次の操作を行います。
- ハブとグループにメッセージを送信します。
- 特定のユーザーまたはつながりにメッセージを送信します。
- ユーザーと接続をグループにまとめる。
- 接続を閉じる
- 既存の接続のアクセス許可を付与、取り消し、確認する
詳細については、以下を参照してください。
- Azure Web PubSub クライアント ライブラリ Java SDK
- Azure Web PubSub クライアント ライブラリのリファレンス ドキュメント
- Java 用 Azure Web PubSub クライアント ライブラリのサンプル
- Azure Web PubSub サービスのドキュメント
作業の開始
[前提条件]
- アクティブなサブスクリプションが含まれる Azure アカウントが必要です。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- Java Development Kit (JDK)、バージョン 8 以降。
パッケージをインクルードする
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-messaging-webpubsub</artifactId>
<version>1.0.0</version>
</dependency>
接続文字列を使用して WebPubSubServiceClient を作成する
WebPubSubServiceClient webPubSubServiceClient = new WebPubSubServiceClientBuilder()
.connectionString("{connection-string}")
.hub("chat")
.buildClient();
アクセス キーを使用して WebPubSubServiceClient を作成する
WebPubSubServiceClient webPubSubServiceClient = new WebPubSubServiceClientBuilder()
.credential(new AzureKeyCredential("{access-key}"))
.endpoint("<Insert endpoint from Azure Portal>")
.hub("chat")
.buildClient();
例示
ハブ全体にメッセージをブロードキャストする
webPubSubServiceClient.sendToAll("Hello world!", WebPubSubContentType.TEXT_PLAIN);
グループにメッセージをブロードキャストする
webPubSubServiceClient.sendToGroup("java", "Hello Java!", WebPubSubContentType.TEXT_PLAIN);
接続にメッセージを送信する
webPubSubServiceClient.sendToConnection("myconnectionid", "Hello connection!", WebPubSubContentType.TEXT_PLAIN);
ユーザーにメッセージを送信する
webPubSubServiceClient.sendToUser("Andy", "Hello Andy!", WebPubSubContentType.TEXT_PLAIN);
トラブルシューティング
クライアントのログ記録を有効にする
AZURE_LOG_LEVEL環境変数を設定して、クライアント ライブラリで行われたログ 記録ステートメントを表示できます。 たとえば、 AZURE_LOG_LEVEL=2 を設定すると、すべての情報、警告、およびエラー ログ メッセージが表示されます。 ログ レベルについては、 ログ レベルを参照してください。
既定の HTTP クライアント
既定では、すべてのクライアント ライブラリで Netty HTTP クライアントが使用されます。 上記の依存関係を追加すると、Netty HTTP クライアントを使用するようにクライアント ライブラリが自動的に構成されます。 HTTP クライアントの構成または変更については、 HTTP クライアント Wiki で説明されています。
既定の SSL ライブラリ
既定では、すべてのクライアント ライブラリは Tomcat ネイティブのボーリング SSL ライブラリを使用して、SSL 操作のネイティブ レベルのパフォーマンスを有効にします。 Boring SSL ライブラリは、Linux/macOS/Windows 用のネイティブ ライブラリを含む uber jar であり、JDK 内の既定の SSL 実装と比較してパフォーマンスが向上します。 依存関係のサイズを小さくする方法など、詳細については、「[パフォーマンスチューニング][https://github.com/Azure/azure-sdk-for-java/wiki/Performance-Tuning]」を参照してください。
これらのリソースを使用して、独自のアプリケーションの構築を開始します。