Bagikan melalui


Pustaka klien layanan Azure Web PubSub untuk Python

Layanan Azure Web PubSub adalah layanan yang dikelola Azure dan bertujuan memudahkan pengembang membuat aplikasi web dengan fitur real-time dan pola terbitkan-berlangganan. Skenario apa pun yang memerlukan olahpesan 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 pengiriman 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:

The overflow diagram shows the overflow of using the service client library.

Gunakan pustaka ini untuk:

  • Mengirim pesan ke hub dan grup.
  • Mengirim pesan ke pengguna dan koneksi tertentu.
  • Mengatur pengguna dan sambungan ke dalam grup.
  • Tutup koneksi.
  • Berikan, cabut, dan periksa izin untuk koneksi yang sudah ada.

Prasyarat

  • Python 3.6 atau yang lebih baru diperlukan untuk menggunakan paket ini.
  • Anda memerlukan langganan Azure dan instans layanan Azure WebPubSub untuk menggunakan paket ini.
  • Instans layanan Azure Web PubSub yang sudah ada.

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 paket

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

Contoh

Pesan siaran 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"}.

Pesan siaran 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.

Pesan siaran 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'.

Pencatatan

SDK ini menggunakan pustaka pengelogan standar Python. Anda dapat mengonfigurasi pengelogan untuk mencetak informasi penelusuran kesalahan ke atau di stdout 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 dicetak stdout dengan konfigurasi pengelogan ini.

Langkah berikutnya

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

Berkontribusi

Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda untuk menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk benar-benar memberi hak pada kami 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 sekali di semua repositori menggunakan CLA kami.

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