Megosztás a következőn keresztül:


Azure Web PubSub szolgáltatás ügyfélkódtára Pythonhoz – 1.0.1-es verzió

Az Azure Web PubSub Service egy Azure által felügyelt szolgáltatás, amellyel a fejlesztők egyszerűen készíthetnek webalkalmazásokat valós idejű funkciókkal és közzétételi-feliratkozási mintával. Az Azure Web PubSub szolgáltatást bármely olyan forgatókönyvben használhatja, amely valós idejű közzétételi-feliratkozási üzenetküldést igényel a kiszolgálók és ügyfelek között, illetve az ügyfelek között. Az Azure Web PubSub szolgáltatást is használhatják a hagyományos valós idejű funkciók, amelyek gyakran lekérdezést igényelnek a kiszolgálóról vagy HTTP-kérések elküldéséhez.

Ezt a kódtárat az alkalmazáskiszolgáló oldalán használhatja a WebSocket-ügyfélkapcsolatok kezeléséhez, az alábbi ábrán látható módon:

Túlcsordulás

Használja ezt a kódtárat a következőre:

  • Üzenetek küldése központoknak és csoportoknak.
  • Üzenetek küldése adott felhasználóknak és kapcsolatoknak.
  • Felhasználók és kapcsolatok csoportokba rendezése.
  • Kapcsolatok bezárása
  • Meglévő kapcsolat engedélyeinek megadása, visszavonása és ellenőrzése

Forráskód | Csomag (Pypi) | API-referenciadokumentáció | Termékdokumentáció

Felelősséget kizáró nyilatkozat

Az Azure SDK Python-csomagok támogatása a Python 2.7-hez 2022. január 01-én véget ért. További információkért és kérdésekért lásd: https://github.com/Azure/azure-sdk-for-python/issues/20691

Első lépések

Előfeltételek

1. A csomag telepítése

python -m pip install azure-messaging-webpubsubservice

2. WebPubSubServiceClient létrehozása és hitelesítése

A hitelesítést a WebPubSubServiceClientkapcsolati sztring használatával végezheti el:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

>>> service = WebPubSubServiceClient.from_connection_string(connection_string='<connection_string>', hub='hub')

Vagy használja a szolgáltatásvégpontot és a hozzáférési kulcsot:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> from azure.core.credentials import AzureKeyCredential

>>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=AzureKeyCredential("<access_key>"))

Vagy az Azure Active Directory használatával:

  1. pip telepítése azure-identity

  2. Kövesse a dokumentumot az AAD-hitelesítés webpubsub-erőforráson való engedélyezéséhez

  3. Kód frissítése a DefaultAzureCredential használatára

    >>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
    >>> from azure.identity import DefaultAzureCredential
    >>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=DefaultAzureCredential())
    

Fő fogalmak

Kapcsolat

A kapcsolat, más néven ügyfél- vagy ügyfélkapcsolat, a Web PubSub szolgáltatáshoz csatlakoztatott különálló WebSocket-kapcsolatot jelöl. Sikeres csatlakozás esetén a Web PubSub szolgáltatás egyedi kapcsolatazonosítót rendel ehhez a kapcsolathoz.

Hub

A központ egy logikai fogalom az ügyfélkapcsolatok halmazához. Általában egy központot használ egy célra, például egy csevegőközpontot vagy egy értesítési központot. Az ügyfélkapcsolat létrehozásakor csatlakozik egy központhoz, és annak élettartama során az adott központhoz tartozik. A különböző alkalmazások különböző központnevek használatával megoszthatnak egy Azure Web PubSub szolgáltatást.

Group

A csoport a központtal létesített kapcsolatok részhalmaza. Bármikor hozzáadhat ügyfélkapcsolatot egy csoporthoz, vagy bármikor eltávolíthatja az ügyfélkapcsolatot a csoportból. Ha például egy ügyfél csatlakozik egy csevegőszobához, vagy amikor egy ügyfél elhagyja a csevegőszobát, ez a csevegőszoba csoportnak tekinthető. Az ügyfelek több csoporthoz is csatlakozhatnak, és egy csoport több ügyfelet is tartalmazhat.

Felhasználó

A Web PubSub-kapcsolatok egy felhasználóhoz tartozhatnak. Egy felhasználó több kapcsolattal is rendelkezhet, például ha egy felhasználó több eszközön vagy több böngészőlapon csatlakozik.

Üzenet

Amikor az ügyfél csatlakozik, üzeneteket küldhet a felsőbb rétegbeli alkalmazásnak, vagy fogadhat üzeneteket a felsőbb rétegbeli alkalmazásból a WebSocket-kapcsolaton keresztül.

Példák

Üzenetek küldése JSON formátumban

>>> 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'
    })

A WebSocket-ügyfél JSON szerializált szöveget kap: {"from": "user1", "data": "Hello world"}.

Üzenetek szórása egyszerű szöveges formátumban

>>> 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')

A WebSocket-ügyfél a következő szöveget kapja: Hello world.

Üzenetek szórása bináris formátumban

>>> 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')

A WebSocket-ügyfél bináris szöveget kap: b'Hello world'.

Hibaelhárítás

Naplózás

Ez az SDK Python standard naplózási kódtárat használ. Beállíthatja, hogy a naplózás kinyomtassa a hibakeresési információkat az stdoutra vagy tetszőleges helyre.

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)

Hasonlóképpen logging_enable engedélyezheti a részletes naplózást egyetlen híváshoz, még akkor is, ha nincs engedélyezve a WebPubSubServiceClient esetében:

result = service.send_to_all(..., logging_enable=True)

Ezzel a naplózási konfigurációval a rendszer a HTTP-kérések és a válaszok részleteit az stdoutra nyomtatja.

Következő lépések

További példákat itt talál.

Közreműködés

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. További részletekért lásd: https://cla.microsoft.com.

A lekéréses kérelmek elküldésekor egy CLA-robot automatikusan meghatározza, hogy kell-e biztosítania CLA-t, és megfelelően kitölti a lekéréses kérelmet (például címke, megjegyzés). Egyszerűen csak kövesse a robot által megadott utasításokat. Ezt csak egyszer kell elvégeznie az összes olyan tárházban, amely a CLA-t használja.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért keresse fel a Viselkedési szabályzattal kapcsolatos gyakori kérdések oldalát, illetve küldje el kérdéseit vagy észrevételeit a következő címre: opencode@microsoft.com.