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:
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:
pip install
azure-identity
.Aktifkan otorisasi Microsoft Entra pada sumber daya Webpubsub Anda.
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.