Pustaka klien layanan Azure Web PubSub untuk Python

Layanan Azure Web PubSub adalah layanan terkelola Azure yang membantu pengembang dengan mudah membangun aplikasi web dengan fitur real time dan pola terbitkan-berlangganan. Skenario apa pun yang memerlukan pesan terbitkan-berlangganan real time antara server dan klien atau di antara klien dapat menggunakan layanan Azure Web PubSub. Fitur real-time tradisional yang sering memerlukan polling dari server atau mengirimkan permintaan HTTP juga dapat menggunakan layanan Azure Web PubSub.

Anda dapat menggunakan pustaka ini di sisi server aplikasi Anda untuk mengelola koneksi klien WebSocket, seperti yang ditunjukkan dalam diagram berikut:

Diagram luapan menunjukkan luapan penggunaan pustaka klien layanan.

Gunakan pustaka ini untuk:

  • Mengirim pesan ke hub dan grup.
  • Mengirim pesan ke pengguna dan koneksi tertentu.
  • Atur pengguna dan koneksi ke dalam grup.
  • Tutup koneksi.
  • Memberikan, mencabut, dan memeriksa izin untuk koneksi yang ada.

Prasyarat

Penting

Dukungan paket Azure SDK Python untuk Python 2.7 berakhir pada 01 Januari 2022. Untuk informasi selengkapnya, lihat Dukungan paket Azure SDK Python.

Pasang paketnya

Gunakan perintah ini untuk menginstal paket:

python -m pip install azure-messaging-webpubsubservice

Membuat dan mengautentikasi WebPubSubServiceClient

Anda dapat mengautentikasi WebPubSubServiceClient menggunakan string koneksi:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

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

Atau gunakan titik akhir layanan dan kunci akses:

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

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

Atau gunakan ID Microsoft Entra:

  1. pip install azure-identity.

  2. Aktifkan otorisasi Microsoft Entra pada sumber daya Webpubsub Anda.

  3. Perbarui kode untuk menggunakan DefaultAzureCredential.

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

Examples

Menyiarkan pesan dalam format 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'
    })

Klien WebSocket menerima teks serial JSON: {"from": "user1", "data": "Hello world"}.

Menyiarkan pesan dalam format teks biasa

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

Klien WebSocket menerima teks: Hello world.

Menyiarkan pesan dalam format biner

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

Klien WebSocket menerima teks biner: b'Hello world'.

Penebangan kayu

SDK ini menggunakan pustaka pengelogan standar Python. Anda dapat mengonfigurasi logging untuk mencetak informasi debugging ke stdout atau di mana pun Anda inginkan.

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)

Demikian pula, logging_enable dapat mengaktifkan pengelogan terperinci untuk satu panggilan, bahkan ketika tidak diaktifkan untuk WebPubSubServiceClient:

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

Detail permintaan dan respons HTTP ditampilkan dalam stdout dengan konfigurasi pencatatan log ini.

Langkah selanjutnya

Untuk sampel selengkapnya, lihat Pustaka klien layanan Azure Web PubSub untuk Sampel Python.

Contributing

Proyek ini menyambut kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk informasi selengkapnya, lihat Perjanjian Lisensi Kontributor.

Saat Anda mengirimkan permintaan pull, cla-bot secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat, misalnya, "label", "komentar". Ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan tindakan ini satu kali pada semua repositori yang menggunakan CLA kami.

Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat FAQ Kode Etik atau hubungi Tim Kode Etik Sumber Terbuka dengan pertanyaan atau komentar.