次の方法で共有


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

Azure Web PubSub サービス は、開発者がリアルタイム機能と発行/サブスクライブ パターンを使用して Web アプリケーションを簡単に構築するのに役立つ Azure マネージド サービスです。 サーバーとクライアント間、またはクライアント間でリアルタイムの発行/サブスクライブ メッセージングを必要とするシナリオでは、Azure Web PubSub サービスを使用できます。 サーバーからのポーリングや HTTP 要求の送信が必要な従来のリアルタイム機能でも、Azure Web PubSub サービスを使用できます。

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

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

オーバーフロー図は、サービス クライアント ライブラリの使用のオーバーフローを示しています。

このライブラリを使用して、次の操作を行います。

  • ハブとグループにメッセージを送信します。
  • 特定のユーザーまたはつながりにメッセージを送信します。
  • ユーザーと接続をグループにまとめる。
  • 接続を閉じる
  • 既存の接続のアクセス許可を付与、取り消し、確認する

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

作業の開始

[前提条件]

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

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

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