Azure Web PubSub 服務 是一項 Azure 管理服務,幫助開發者輕鬆建立具備即時功能及發佈-訂閱模式的網頁應用程式。 任何需要伺服器與用戶端之間即時發佈-訂閱訊息,或用戶端間的情境,都可以使用 Azure Web PubSub 服務。 傳統的即時功能通常需要伺服器輪詢或提交 HTTP 請求,也可以使用 Azure Web PubSub 服務。
本文介紹 Azure Web PubSub 服務客戶端函式庫。
你可以在伺服器端應用程式中使用這個函式庫來管理 WebSocket 用戶端的連線,如圖所示:
使用此函式庫:
- 發送訊息給中心和群組。
- 向特定使用者和連線發送訊息。
- 將使用者和連結組織成群組。
- 密切連結
- 授權、撤銷並檢查現有連線的權限
如需詳細資訊,請參閱:
- Azure Web PubSub client library Java SDK
- Azure Web PubSub 用戶端程式庫參考文件
- Azure Web PubSub 客戶端庫範例(適用於 Java)
- Azure Web PubSub service documentation
入門指南
先決條件
- 需要一個具有有效訂閱的 Azure 帳戶。 若您還沒有帳戶,可以免費建立帳戶。
- Java 開發套件(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 用戶端維基中說明。
預設 SSL 函式庫
預設情況下,所有用戶端函式庫都使用 Tomcat 原生的 Boring SSL 函式庫,以啟用 SSL 操作的原生效能。 Boring SSL 函式庫是一個包含 Linux / macOS / Windows 原生函式庫的超級 jar,效能優於 JDK 內建的 SSL 實作。 若想了解更多資訊,包括如何減少相依性大小,請參閱 [效能調整][https://github.com/Azure/azure-sdk-for-java/wiki/Performance-Tuning]。
使用這些資源開始建置自己的應用程式: