Java 用 Azure Web PubSub サービス クライアント ライブラリ
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 ネイティブの Boring SSL ライブラリを既定で使用して、SSL 操作のネイティブレベルのパフォーマンスを実現しています。 Boring SSL ライブラリは、Linux、macOS、Windows のネイティブ ライブラリを含んだ uber jar であり、JDK 内の既定の SSL 実装よりも優れたパフォーマンスを備えています。 依存関係のサイズを縮小する方法など、詳細については、[パフォーマンス チューニング][https://github.com/Azure/azure-sdk-for-java/wiki/Performance-Tuning] を参照してください。
これらのリソースを使用して、独自のアプリケーションの構築を開始します。