Aracılığıyla paylaş


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:

Taşma

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

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:

  1. pip yüklemesi azure-identity

  2. Webpubsub kaynağınızda AAD kimlik doğrulamasını etkinleştirmek için belgeyi izleyin

  3. 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.