Python için Azure Web PubSub hizmeti istemci kitaplığı - sürüm 1.0.1
Azure Web PubSub Hizmeti , geliştiricilerin gerçek zamanlı özellikler ve yayımlama-abone olma düzeniyle web uygulamalarını kolayca oluşturmalarına yardımcı olan Azure tarafından yönetilen bir hizmettir. Sunucu ve istemciler arasında veya istemciler arasında gerçek zamanlı yayımlama-abone olma mesajlaşması gerektiren tüm senaryolar Azure Web PubSub hizmetini kullanabilir. Genellikle sunucudan yoklama veya HTTP istekleri gönderme gerektiren geleneksel gerçek zamanlı özellikler, Azure Web PubSub hizmetini de kullanabilir.
Aşağıdaki diyagramda gösterildiği gibi WebSocket istemci bağlantılarını yönetmek için uygulama sunucu tarafınızda bu kitaplığı kullanabilirsiniz:
Bu kitaplığı kullanarak:
- Hub'lara ve gruplara ileti gönderme.
- Belirli kullanıcılara ve bağlantılara ileti gönderme.
- Kullanıcıları ve bağlantıları gruplar halinde düzenleyin.
- Bağlantıları kapatma
- Var olan bir bağlantı için izin verme, iptal etme ve denetleme
Kaynak kodu | Paket (Pypi) | API başvuru belgeleri | Ürün belgeleri
Bildirim
Python 2.7 için Azure SDK Python paketleri desteği 01 Ocak 2022'de sona erdi. Daha fazla bilgi ve soru için lütfen https://github.com/Azure/azure-sdk-for-python/issues/20691
Başlarken
Önkoşullar
- Bu paketi kullanmak için Python 3.6 veya üzeri gereklidir.
- Bu paketi kullanmak için bir Azure aboneliğine ve Azure WebPubSub hizmet örneğine ihtiyacınız vardır.
- Mevcut bir Azure Web PubSub hizmet örneği.
1. Paketi yükleyin
python -m pip install azure-messaging-webpubsubservice
2. WebPubSubServiceClient oluşturma ve kimlik doğrulaması
Bağlantı dizesiniWebPubSubServiceClient
kullanarak kimlik doğrulaması yapabilirsiniz:
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string(connection_string='<connection_string>', hub='hub')
Veya hizmet uç noktasını ve erişim anahtarını kullanarak:
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> from azure.core.credentials import AzureKeyCredential
>>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=AzureKeyCredential("<access_key>"))
Veya Azure Active Directory kullanarak:
pip yüklemesi
azure-identity
Webpubsub kaynağınızda AAD kimlik doğrulamasını etkinleştirmek için belgeyi izleyin
DefaultAzureCredential kullanmak için kodu güncelleştirme
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient >>> from azure.identity import DefaultAzureCredential >>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=DefaultAzureCredential())
Önemli kavramlar
Bağlantı
İstemci veya istemci bağlantısı olarak da bilinen bağlantı, Web PubSub hizmetine bağlı tek bir WebSocket bağlantısını temsil eder. Başarıyla bağlanıldığında, Web PubSub hizmeti tarafından bu bağlantıya benzersiz bir bağlantı kimliği atanır.
Hub
Hub, istemci bağlantıları kümesi için mantıksal bir kavramdır. Genellikle bir hub'ı sohbet hub'ı veya bildirim hub'ı gibi tek bir amaç için kullanırsınız. bir istemci bağlantısı oluşturulduğunda bir hub'a bağlanır ve kullanım ömrü boyunca bu hub'a aittir. Farklı uygulamalar, farklı hub adlarını kullanarak bir Azure Web PubSub hizmetini paylaşabilir.
Grup
Grup, hub'a yönelik bağlantıların bir alt kümesidir. bir gruba istemci bağlantısı ekleyebilir veya istemci bağlantısını istediğiniz zaman gruptan kaldırabilirsiniz. Örneğin, bir istemci bir sohbet odasına katıldığında veya bir istemci sohbet odasından ayrıldığında, bu sohbet odası grup olarak kabul edilebilir. bir istemci birden çok gruba katılabilir ve bir grup birden çok istemci içerebilir.
Kullanıcı
Web PubSub bağlantıları tek bir kullanıcıya ait olabilir. Bir kullanıcının birden çok bağlantısı olabilir, örneğin tek bir kullanıcı birden çok cihazda veya birden çok tarayıcı sekmesinde bağlandığında.
İleti
İstemci bağlandığında, WebSocket bağlantısı aracılığıyla yukarı akış uygulamasına ileti gönderebilir veya yukarı akış uygulamasından iletiler alabilir.
Örnekler
İletileri JSON biçiminde yayınlama
>>> 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 istemcisi JSON serileştirilmiş metni alır: {"from": "user1", "data": "Hello world"}
.
İletileri düz metin biçiminde yayınlama
>>> 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 istemcisi şu metni alır: Hello world
.
İletileri ikili biçimde yayınlama
>>> 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 istemcisi ikili metin alır: b'Hello world'
.
Sorun giderme
Günlüğe Kaydetme
Bu SDK, Python standart günlük kitaplığını kullanır. Günlük yazdırma hata ayıklama bilgilerini stdout'a veya istediğiniz herhangi bir yere yapılandırabilirsiniz.
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)
Benzer şekilde, logging_enable
WebPubSubServiceClient için etkinleştirilmemiş olsa bile tek bir çağrı için ayrıntılı günlüğe kaydetmeyi etkinleştirebilir:
result = service.send_to_all(..., logging_enable=True)
Http isteği ve yanıt ayrıntıları bu günlük yapılandırmasıyla stdout'a yazdırılır.
Sonraki adımlar
Daha fazla örneği buradan kontrol edin.
Katkıda bulunma
Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.
Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bu işlemi, CLA’mızı kullanarak tüm depolarda yalnızca bir kere yapmanız gerekir.
Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları hakkında SSS bölümüne bakın veya başka soru ya da görüşleriniz olursa opencode@microsoft.com ile iletişime geçin.
Azure SDK for Python