Java 用 Azure Web PubSub サービス クライアント ライブラリ

Azure Web PubSub サービスは、開発者がリアルタイムの機能と発行-サブスクライブ パターンを使って Web アプリケーションを簡単に作成できるようにするための Azure マネージド サービスです。 サーバーとクライアント間、またはクライアント間で、リアルタイムのパブリッシュ-サブスクライブ メッセージングを必要とするあらゆるシナリオに、Azure Web PubSub サービスを使用できます。 従来のリアルタイム機能は、多くの場合、サーバーからのポーリングや HTTP 要求の送信を必要としますが、そのようなリアルタイム機能にも Azure Web PubSub サービスを使用できます。

この記事では、Azure Web PubSub サービス クライアント ライブラリについて説明します。

次の図に示すように、このライブラリをサーバー側アプリで使用して、WebSocket クライアント接続を管理できます。

The overflow diagram shows the overflow of using the service client library.

このライブラリは次のことに使うことができます。

  • ハブとグループにメッセージを送信します。
  • 特定のユーザーと接続にメッセージを送信します。
  • ユーザーと接続をグループに整理します。
  • 接続を終了します
  • 既存の接続のアクセス許可を付与、取り消し、確認します

詳細については、以下を参照してください:

作業の開始

前提条件

パッケージをインクルードする

<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] を参照してください。

これらのリソースを使用して、独自のアプリケーションの構築を開始します。