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
- Ein Azure-Abonnement.
- Eine vorhandene Azure Web PubSub-Dienstinstanz.
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. UndUnauthorizedAccessException
wird in konvertiert401Unauthorized
, und Ruhezustand wird zusammen mit einer Ausnahmemeldung zum Zurückgeben des Diensts in konvertiert500InternalServerError
. 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.
Azure SDK for .NET