Azure Web PubSub 服務 是一項 Azure 管理服務,幫助開發者輕鬆建立具備即時功能及發佈-訂閱模式的網頁應用程式。 任何需要伺服器與用戶端之間即時發佈-訂閱訊息,或用戶端間的情境,都可以使用 Azure Web PubSub 服務。 傳統的即時功能通常需要從伺服器輪詢或提交 HTTP 請求,也可以使用 Azure Web PubSub 服務。
你可以在應用伺服器端使用這個函式庫來管理 WebSocket 用戶端連線,如下圖所示:
使用此函式庫:
- 發送訊息給中心和群組。
- 向特定使用者和連線發送訊息。
- 將使用者和連結組織成群組。
- 密切的連結。
- 授權、撤銷並檢查現有連線的權限。
先決條件
- 使用此套件需使用 Python 3.6 或更新版本。
- 你需要 Azure 訂閱 和 Azure WebPubSub 服務實例 才能使用這個套件。
- 一個現有的 Azure Web PubSub 服務實例。
這很重要
Azure SDK Python 套件對 Python 2.7 的支援將於 2022 年 1 月 1 日結束。 欲了解更多資訊,請參閱 Azure SDK Python 套件支援。
安裝套件
請使用此指令安裝該套件:
python -m pip install azure-messaging-webpubsubservice
建立並驗證 WebPubSubServiceClient
你可以用WebPubSubServiceClient來驗證:
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string(connection_string='<connection_string>', hub='hub')
或者使用服務端點和存取金鑰:
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> from azure.core.credentials import AzureKeyCredential
>>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=AzureKeyCredential("<access_key>"))
或者使用 Microsoft Entra ID:
PIP 安裝
azure-identity。更新程式碼以使用 DefaultAzureCredential。
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient >>> from azure.identity import DefaultAzureCredential >>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=DefaultAzureCredential())
範例
JSON 格式的廣播訊息
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub1')
>>> service.send_to_all(message = {
'from': 'user1',
'data': 'Hello world'
})
WebSocket 用戶端接收 JSON 序列化文字: {"from": "user1", "data": "Hello world"}。
純文字格式的廣播訊息
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub1')
>>> service.send_to_all(message = 'Hello world', content_type='text/plain')
WebSocket 用戶端接收文字: Hello world。
二進位格式的廣播訊息
>>> import io
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub')
>>> service.send_to_all(message=io.StringIO('Hello World'), content_type='application/octet-stream')
WebSocket 用戶端接收二進位文字: b'Hello world'。
森林伐木業
此 SDK 使用 Python 標準日誌函式庫。
你可以設定日誌,將除錯資訊記錄到 stdout 或至任何你想要的位置。
import sys
import logging
from azure.identity import DefaultAzureCredential
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
# Create a logger for the 'azure' SDK
logger = logging.getLogger('azure')
logger.setLevel(logging.DEBUG)
# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
endpoint = "<endpoint>"
credential = DefaultAzureCredential()
# This WebPubSubServiceClient will log detailed information about its HTTP sessions, at DEBUG level
service = WebPubSubServiceClient(endpoint=endpoint, hub='hub', credential=credential, logging_enable=True)
同樣地,logging_enable 可以啟用單一通話的詳細記錄,即使 WebPubSubServiceClient 未啟用:
result = service.send_to_all(..., logging_enable=True)
HTTP 請求與回應細節會根據此日誌配置列印至 stdout。
後續步驟
欲了解更多範例,請參閱 Azure Web PubSub 服務客戶端函式庫中的 Python 範例。
Contributing
此項目歡迎參與和建議。 大部分的參與都要求您同意「參與者授權合約 (CLA)」,宣告您有權且確實授與我們使用投稿的權利。 欲了解更多資訊,請參閱 貢獻者授權協議。
當您提交提取要求時,CLA Bot 會自動判斷您是否需要提供 CLA,並適當地裝飾 PR (例如:「標籤」、「註解」)。 請依照機器人提供的指示操作。 您只需要使用我們的 CLA 在所有存放庫上執行此動作一次。
本專案已採用 Microsoft 開源行為準則。 欲了解更多資訊,請參閱 行為準則 常見問題集,或如有問題或意見可聯絡 開源行為團隊 。