Freigeben über


Middleware-Clientbibliothek des Azure Web PubSub-Diensts für .NET– Version 1.2.0

Der Azure Web PubSub-Dienst ist ein Dienst, mit dem Sie Webanwendungen für Echtzeitnachrichten mithilfe von WebSockets und dem Publish-Subscribe-Muster erstellen können. Jede Plattform, die WebSocket-APIs unterstützt, kann problemlos eine Verbindung mit dem Dienst herstellen, z. B. Webseiten, mobile Anwendungen, Edgegeräte usw. Der Dienst verwaltet die WebSocket-Verbindungen für Sie und ermöglicht bis zu 100.000 gleichzeitige Verbindungen. Es bietet leistungsstarke APIs, mit deren Sie diese Clients verwalten und Nachrichten in Echtzeit übermitteln können.

Der Azure Web PubSub-Dienst kann in allen Szenarien verwendet werden, für die Veröffentlichen-Abonnieren-Messaging in Echtzeit zwischen Server und Clients oder zwischen Clients erforderlich ist. Herkömmliche Echtzeitfeatures, die häufig das Abrufen vom Server oder das Übermitteln von HTTP-Anforderungen erfordern, können ebenfalls den Azure Web PubSub-Dienst verwenden.

Mithilfe dieser Bibliothek können die folgenden Aktionen ausgeführt werden. Details zu den hier verwendeten Begriffen werden im Abschnitt Wichtige Begriffe beschrieben.

  • Analysieren Upstream Anforderungen unter CloudNative CloudEvents
  • Hinzufügen von Validierungsoptionen für Upstream Anforderung
  • API zum Hinzufügen von benutzerdefinierten Funktionen zur Behandlung verschiedener Upstream Ereignisse

Quellcode | Paket | API-Referenzdokumentation | Produktdokumentation | Proben |

Erste Schritte

Installieren des Pakets

Installieren der Clientbibliothek über NuGet

dotnet add package Microsoft.Azure.WebPubSub.AspNetCore

Voraussetzungen

Authentifizieren des Clients

Um mit dem Dienst zu interagieren, müssen Sie dem Web PubSub-Dienst gültige Anmeldeinformationen bereitstellen. Hierzu benötigen Sie die Verbindungszeichenfolge oder einen Schlüssel. Beides steht im Azure-Portal zur Verfügung. Wenn Sie die Dienst-REST-API aufrufen möchten, können Sie außerdem aufrufen AddWebPubSubServiceClient<THub>() , wo THub der Benutzer implementiert WebPubSubHub ist, um wichtige Ereignisse zu überwachen.

Konfigurieren von Web PubSub-Dienstoptionen

public void ConfigureServices(IServiceCollection services)
{
    services.AddWebPubSub(o =>
    {
        o.ServiceEndpoint = new("<connection-string>");
    }).AddWebPubSubServiceClient<SampleHub>();
}

Zuordnung WebPubSubHub zum Endpunktrouting

public void Configure(IApplicationBuilder app)
{
    app.UseEndpoints(endpoint =>
    {
        endpoint.MapWebPubSubHub<SampleHub>("/eventhandler");
    });
}

Wichtige Begriffe

Informationen zu allgemeinen Web PubSub-Konzepten in Azure Web PubSub

WebPubSubHub

WebPubSubHub ist eine abstrakte Klasse, mit der Benutzer die abonnierten Web PubSub-Dienstereignisse implementieren können. Nachdem der Benutzer den Ereignishandler auf der Dienstseite registriert hat, werden diese Ereignisse vom Dienst an den Server weitergeleitet. Und WebPubSubHub bietet vier Methoden, die den Dienstereignissen zugeordnet sind, damit Benutzer mit diesen Ereignissen umgehen können, z. B. Clientverwaltung, Validierungen oder Arbeiten mit Azure.Messaging.WebPubSub , um die Nachrichten zu übertragen. Weitere Informationen finden Sie unten in den Beispielen.

HINWEIS

Unter den vier Methoden und blockieren Ereignisse, OnConnectAsync()OnMessageReceivedAsync() die der Dienst berücksichtigt, serverrückgibt. Neben der zugeordneten richtigen Antwort kann der Server Ausnahmen auslösen, wenn die Anforderung für die serverseitige Logik gilt. Und UnauthorizedAccessException wird in konvertiert 401Unauthorized , und Ruhezustand wird zusammen mit einer Ausnahmemeldung zum Zurückgeben des Diensts in konvertiert 500InternalServerError . Anschließend wird die aktuelle Clientverbindung vom Dienst gelöscht.

Beispiele

Behandeln Upstream Connect Ereignisses

private sealed class SampleHub : WebPubSubHub
{
    internal WebPubSubServiceClient<SampleHub> _serviceClient;

    // Need to ensure service client is injected by call `AddServiceHub<SampleHub>` in ConfigureServices.
    public SampleHub(WebPubSubServiceClient<SampleHub> serviceClient)
    {
        _serviceClient = serviceClient;
    }

    public override ValueTask<ConnectEventResponse> OnConnectAsync(ConnectEventRequest request, CancellationToken cancellationToken)
    {
        var response = new ConnectEventResponse
        {
            UserId = request.ConnectionContext.UserId
        };
        return new ValueTask<ConnectEventResponse>(response);
    }
}

Problembehandlung

Einrichten der Konsolenprotokollierung

Sie können auch einfach die Konsolenprotokollierung aktivieren, wenn Sie ausführliche Informationen zu den von Ihnen an den Dienst gesendeten Anforderungen erhalten möchten.

Nächste Schritte

Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie im Verzeichnis Samples .

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Einzelheiten dazu finden Sie unter https://cla.microsoft.com..

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.

Aufrufe