Freigeben über


Echtzeit-Apps mit Azure SignalR Service und Azure Functions

Mit einer Kombination aus Azure SignalR Service und Azure Functions können Sie echtzeitbasierte Messaging-Web-Apps in einer serverlosen Umgebung ausführen. Dieser Artikel enthält eine Übersicht über die Zusammenarbeit der Dienste.

Sowohl Azure SignalR Service als auch Azure Functions ist ein vollständig verwalteter, hochgradig skalierbarer Dienst. Sie ermöglichen es Ihnen, sich auf die Erstellung von Anwendungen zu konzentrieren, anstatt sich um die Verwaltung der Infrastruktur kümmern zu müssen. Die beiden Dienste werden üblicherweise zusammen verwendet, um Echtzeitkommunikation in einer serverlosen Umgebung bereitzustellen.

Integrieren von Echtzeitkommunikation in Azure-Dienste

Der Azure Functions-Dienst ermöglicht es Ihnen, Code in mehreren Programmiersprachen (einschließlich JavaScript, Python, C# und Java) zu schreiben, der ausgelöst wird, wenn Ereignisse in der Cloud auftreten. Beispiele für diese Ereignisse sind:

  • HTTP- und Webhookanforderungen
  • Periodische Timer
  • Ereignisse aus Azure-Diensten, beispielsweise aus:
    • Event Grid
    • Event Hubs
    • Service Bus
    • Azure Cosmos DB-Änderungsfeed
    • Speicherblobs und Warteschlangen
    • Logic Apps-Connector wie Salesforce und SQL Server

Indem Sie Azure Functions verwenden, um diese Ereignisse in den Azure SignalR-Dienst zu integrieren, haben Sie die Möglichkeit, Tausende von Clients zu benachrichtigen, wenn Ereignisse auftreten.

Einige gängige Szenarien für serverloses Messaging in Echtzeit, die Sie mit Azure Functions und dem SignalR-Dienst implementieren können, sind unter anderem:

  • Visualisieren von IoT-Gerätetelemetriedaten in Echtzeit auf einem Dashboard oder einer Karte
  • Aktualisieren von Daten in einer Anwendung, wenn Dokumente in Azure Cosmos DB aktualisiert werden
  • Senden von In-App-Benachrichtigungen, wenn neue Bestellungen in Salesforce erstellt werden

Bindungen des SignalR-Diensts für Azure Functions

Die Bindungen des SignalR-Diensts für Azure Functions ermöglichen es einer Azure Functions-App, Nachrichten für Clients zu veröffentlichen, die mit dem SignalR-Dienst verbunden sind. Clients können eine Verbindung mit dem Dienst über ein SignalR-Client-SDK herstellen, das in .NET, JavaScript und Java verfügbar ist. Weitere Sprachen folgen in Kürze.

Ein Beispielszenario

Die Verwendung von Azure Functions für die Integration in Azure Cosmos DB und SignalR Service ist ein Beispiel für die Verwendung der SignalR Service-Bindungen, um Echtzeitnachrichten zu senden, wenn neue Ereignisse in einem Azure Cosmos DB-Änderungsfeed auftreten.

Azure Cosmos DB, Azure Functions, SignalR Service

  1. Eine Änderung wird in einer Azure Cosmos DB-Sammlung vorgenommen.
  2. Das Änderungsereignis wird an den Azure Cosmos DB-Änderungsfeed weitergegeben.
  3. Der Azure Cosmos DB-Trigger aktiviert eine Azure-Funktion als Reaktion auf das Änderungsereignis.
  4. Die SignalR Service-Ausgabebindung veröffentlicht eine Nachricht für SignalR Service.
  5. SignalR Service veröffentlicht die Nachricht für alle verbundenen Clients.

Authentifizierung und Benutzer

Mit SignalR Service können Nachrichten an alle Clients oder an eine Teilmenge der Clients gesendet werden (also etwa an Clients, die zu einem einzelnen Benutzer gehören). Die SignalR Service-Bindungen für Azure Functions können mit der App Service-Authentifizierung kombiniert werden, um Benutzer bei Anbietern wie Microsoft Entra ID, Facebook und X zu authentifizieren. Sie können dann Nachrichten direkt an diese authentifizierten Benutzer senden.

Nächste Schritte

Vollständige Details zur kombinierten Verwendung von Azure Functions und SignalR Service finden Sie in den folgenden Ressourcen:

Informationen zum Ausprobieren der SignalR Service-Bindungen für Azure Functions finden Sie hier: