共用方式為


Azure Web PubSub 服務用於 Python 的用戶端函式庫

Azure Web PubSub 服務 是一項 Azure 管理服務,幫助開發者輕鬆建立具備即時功能及發佈-訂閱模式的網頁應用程式。 任何需要伺服器與用戶端之間即時發佈-訂閱訊息,或用戶端間的情境,都可以使用 Azure Web PubSub 服務。 傳統的即時功能通常需要從伺服器輪詢或提交 HTTP 請求,也可以使用 Azure Web PubSub 服務。

你可以在應用伺服器端使用這個函式庫來管理 WebSocket 用戶端連線,如下圖所示:

溢位圖顯示使用服務客戶端函式庫的溢位情況。

使用此函式庫:

  • 發送訊息給中心和群組。
  • 向特定使用者和連線發送訊息。
  • 將使用者和連結組織成群組。
  • 密切的連結。
  • 授權、撤銷並檢查現有連線的權限。

先決條件

這很重要

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

  1. PIP 安裝 azure-identity

  2. 在您的 Webpubsub 資源上啟用 Microsoft Entra 授權

  3. 更新程式碼以使用 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 開源行為準則。 欲了解更多資訊,請參閱 行為準則 常見問題集,或如有問題或意見可聯絡 開源行為團隊