Schnellstart: Senden von Nachrichten in Echtzeit aus einer Konsolen-App
Azure SignalR Service stellt die REST API zur Verfügung, um Server-zu-Client-Kommunikationsszenarien wie z.B. Broadcasting zu unterstützen. Sie können jede beliebige Programmiersprache auswählen, welche die REST-API-Aufrufe durchführen kann. Sie können Nachrichten an alle verbundenen Clients, an einen bestimmten Client anhand seines Namens oder an eine Gruppe von Clients übermitteln.
In diesem Schnellstart erfahren Sie, wie Sie Nachrichten aus einer Befehlszeilenanwendung an verbundene Clientanwendungen in C# senden können.
Voraussetzungen
Dieser Schnellstart kann unter MacOS, Windows oder Linux ausgeführt werden.
- .NET Core SDK
- Ein Text-Editor oder Code-Editor Ihrer Wahl.
Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
Anmelden bei Azure
Melden Sie sich mit Ihrem Azure-Konto beim Azure-Portal an.
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
In diesem Abschnitt erstellen Sie eine einfache Azure SignalR-Instanz für Ihre App. In den folgenden Schritten wird das Azure-Portal für die Erstellung einer neuen Instanz verwendet. Sie können jedoch auch die Azure CLI verwenden. Weitere Informationen finden Sie unter dem Befehl az signalr create in der Azure SignalR Service-CLI-Referenz.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie links oben auf der Seite die Option + Ressource erstellen aus.
- Geben Sie auf der Seite Ressource erstellen im Textfeld Dienste und Marketplace durchsuchen den Text signalr ein und wählen Sie dann SignalR Service aus der Liste aus.
- Klicken Sie auf der Seite SignalR Service auf Erstellen.
- Geben Sie auf der Registerkarte Grundlagen die grundlegenden Informationen für Ihre neue SignalR Service-Instanz ein. Geben Sie die folgenden Werte ein:
Feld | Empfohlener Wert | BESCHREIBUNG |
---|---|---|
Abonnement | Auswählen Ihres Abonnements | Wählen Sie das Abonnement aus, das Sie verwenden möchten, um eine neue SignalR Service-Instanz zu erstellen. |
Ressourcengruppe | Erstellen einer Ressourcengruppe namens SignalRTestResources | Wählen Sie eine Ressourcengruppe für Ihre SignalR-Ressource aus, oder erstellen Sie eine. Es ist hilfreich, für dieses Tutorial eine neue Ressourcengruppe zu erstellen, anstatt eine vorhandene Ressourcengruppe zu verwenden. Löschen Sie die Ressourcengruppe, um nach Abschluss des Tutorials Ressourcen freizugeben. Durch das Löschen einer Ressourcengruppe werden auch alle Ressourcen dieser Gruppe gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. Bevor Sie eine Ressourcengruppe löschen, stellen Sie sicher, dass sie keine Ressourcen enthält, die Sie behalten möchten. Weitere Informationen finden Sie unter Verwenden von Ressourcengruppen zum Verwalten von Azure-Ressourcen. |
Ressourcenname | testsignalr | Geben Sie für die SignalR-Ressource einen eindeutigen Ressourcennamen ein. Wenn testsignalr bereits in Ihrer Region belegt ist, fügen Sie Ziffern oder Zeichen hinzu, bis der Name eindeutig ist. Der Name muss zwischen 1 und 63 Zeichen lang sein und darf nur Zahlen, Buchstaben und den Bindestrich ( - ) enthalten. Der Name darf weder mit dem Bindestrich beginnen oder enden noch mehrere aufeinanderfolgende Bindestriche enthalten. |
Region | Wählen Sie Ihre Region aus. | Wählen Sie die entsprechende Region für Ihre neue SignalR Service-Instanz aus. Azure SignalR Service ist derzeit nicht in allen Regionen verfügbar. Weitere Informationen finden Sie unter Verfügbare Produkte nach Region. |
Preisstufe | Klicken Sie auf Ändern und dann auf Free (nur Dev/Test). Klicken Sie auf Auswählen, um Ihre Tarifauswahl zu bestätigen. | Azure SignalR Service bietet drei Tarife: Free, Standard und Premium. Für Tutorials wird der Tarif Free verwendet, sofern in den Voraussetzungen nichts anderes angegeben ist. Weitere Informationen zu den Funktionsunterschieden zwischen Tarifen und Preisen finden Sie unter Azure SignalR Service – Preise. |
Dienstmodus | Wählen Sie den entsprechenden Dienstmodus | Verwenden Sie Standard, wenn Sie die SignalR-Hublogik in Ihren Web-Apps hosten und den SignalR Service als Proxy verwenden. Verwenden Sie Serverlos, wenn Sie serverlose Technologien wie Azure Functions verwenden, um die SignalR-Hublogik zu hosten. Der Modus Klassisch ist nur für die Abwärtskompatibilität vorgesehen und wird nicht empfohlen. Weitere Informationen finden Sie unter Dienstmodi in Azure SignalR Service. |
Sie müssen die Einstellungen auf den Registerkarten Netzwerk und Tags für die SignalR-Tutorials nicht ändern.
- Klicken Sie unten auf der Registerkarte Grundlagen auf die Schaltfläche Überprüfen und erstellen.
- Überprüfen Sie auf der Registerkarte Überprüfen und erstellen die Werte und klicken Sie dann auf Erstellen. Die Bereitstellung dauert ein paar Augenblicke.
- Klicken Sie nach Abschluss der Bereitstellung auf die Schaltfläche Zu Ressource wechseln.
- Klicken Sie auf der SignalR-Ressourcenseite im Menü auf der linken Seite unter Einstellungen auf Schlüssel.
- Kopieren Sie die Verbindungszeichenfolge für den Primärschlüssel. Sie benötigen diese Verbindungszeichenfolge später in diesem Tutorial, um Ihre App zu konfigurieren.
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
Klonen der Beispielanwendung
Während der Dienst bereitgestellt wird, wollen wir den Code vorbereiten. Zunächst klonen wird die Beispiel-App von GitHub. Legen Sie als Nächstes die Verbindungszeichenfolge des SignalR-Diensts auf die App fest. Führen Sie die Anwendung schließlich lokal aus.
Öffnen Sie ein Git-Terminalfenster. Wechseln Sie in einen Ordner, in dem Sie das Beispielprojekt klonen möchten.
Führen Sie den folgenden Befehl aus, um das Beispielrepository zu klonen. Dieser Befehl erstellt eine Kopie der Beispiel-App auf Ihrem Computer.
git clone https://github.com/aspnet/AzureSignalR-samples.git
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
Erstellen und Ausführen des Beispiels
Dieses Beispiel ist eine Konsolen-App, die die Verwendung des Azure SignalR-Diensts zeigt. Sie bietet zwei Modi:
- Servermodus: Verwenden Sie einfache Befehle zum Aufrufen der REST-API des Azure SignalR-Diensts.
- Clientmodus: Stellen Sie eine Verbindung mit dem Azure SignalR-Dienst her, und empfangen Sie Nachrichten vom Server.
Sie können auch herausfinden, wie Sie ein Zugriffstoken zur Authentifizierung mit Azure SignalR Service generieren.
Erstellen der ausführbaren Datei
Wir verwenden macOS osx.10.13-x64 als Beispiel. Sie können Referenzmaterial zum Buildvorgang auf anderen Plattformen nutzen.
cd AzureSignalR-samples/samples/Serverless/
dotnet publish -c Release -r osx.10.13-x64
Starten Sie einen Client.
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>
Starten Sie einen Server.
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless server -c "<ConnectionString>" -h <HubName>
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
Führen Sie das Beispiel ohne Veröffentlichung aus.
Sie können auch den folgenden Befehl ausführen, um einen Server oder Client zu starten
# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>
# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>
Verwenden von „user-secrets“ zum Angeben der Verbindungszeichenfolge
Sie können dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>"
im Stammverzeichnis des Beispiels ausführen. Danach benötigen Sie die Option -c "<ConnectionString>"
nicht mehr.
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
Verwendung
Nachdem der Server gestartet wurde, verwenden Sie den Befehl zum Senden von Nachrichten:
send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast
Sie können mehrere Clients mit unterschiedlichen Clientnamen starten.
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
-Integration in Nicht-Microsoft-Dienste
Der Azure SignalR-Dienst ermöglicht die Integration von Nicht-Microsoft-Diensten in das System.
Definition der technischen Spezifikationen
Die folgende Tabelle enthält alle Versionen der REST-APIs, die aktuell unterstützt werden. Außerdem finden Sie hier die Zieldatei für die jeweilige Version.
Version | API-Zustand | Tür | Spezifisch |
---|---|---|---|
1.0-preview |
Verfügbar | 5002 | Swagger |
1.0 |
Verfügbar | Standard | Swagger |
Die folgende Liste enthält die verfügbaren APIs für die jeweilige Version.
API | 1.0-preview | 1.0 |
---|---|---|
Übertragen an alle | ✓ | ✓ |
Übertragen an eine Gruppe | ✓ | ✓ |
Übertragen an einige Gruppen | ✓ (veraltet) | N / A |
Senden an einen Benutzer | ✓ | ✓ |
Senden an einige Benutzer | ✓ (veraltet) | N / A |
Hinzufügen eines Benutzers zu einer Gruppe | N / A |
✓ |
Entfernen eines Benutzers aus einer Gruppe | N / A |
✓ |
Überprüfen, ob Benutzer vorhanden sind | N / A |
✓ |
Entfernen eines Benutzers aus allen Gruppen | N / A |
✓ |
Senden an eine Verbindung | N / A |
✓ |
Hinzufügen einer Verbindung zu einer Gruppe | N / A |
✓ |
Entfernen einer Verbindung aus einer Gruppe | N / A |
✓ |
Schließen einer Clientverbindung | N / A |
✓ |
Dienstintegrität | N / A |
✓ |
Übertragen an alle
Version | API-HTTP-Methode | Anfrage-URL | Anforderungstext |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> |
{"target": "<method-name>", "arguments": [...]} |
Übertragen an eine Gruppe
Version | API-HTTP-Methode | Anfrage-URL | Anforderungstext |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> |
{"target": "<method-name>", "arguments": [...]} |
Senden an einen Benutzer
Version | API-HTTP-Methode | Anfrage-URL | Anforderungstext |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> |
{"target": "<method-name>", "arguments": [...]} |
Hinzufügen eines Benutzers zu einer Gruppe
Version | API-HTTP-Methode | Anfrage-URL |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Entfernen eines Benutzers aus einer Gruppe
Version | API-HTTP-Methode | Anfrage-URL |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Überprüfen, ob Benutzer in einer Gruppe vorhanden sind
API-Version | API-HTTP-Methode | Anfrage-URL |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name> |
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Statuscode der Antwort | BESCHREIBUNG |
---|---|
200 |
Benutzer vorhanden |
404 |
Benutzer nicht vorhanden |
Entfernen eines Benutzers aus allen Gruppen
API-Version | API-HTTP-Methode | Anfrage-URL |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups |
Senden einer Nachricht an eine Verbindung
API-Version | API-HTTP-Methode | Anfrage-URL | Anforderungstext |
---|---|---|---|
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
{ "target":"<method-name>", "arguments":[ ... ] } |
Hinzufügen einer Verbindung zu einer Gruppe
API-Version | API-HTTP-Methode | Anfrage-URL |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id> |
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name> |
Entfernen einer Verbindung aus einer Gruppe
API-Version | API-HTTP-Methode | Anfrage-URL |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id> |
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name> |
Schließen einer Clientverbindung
API-Version | API-HTTP-Methode | Anfrage-URL |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason> |
Dienstintegrität
API-Version | API-HTTP-Methode | Anfrage-URL |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/health |
Statuscode der Antwort | BESCHREIBUNG |
---|---|
200 |
Dienst fehlerfrei |
5xx |
Dienstfehler |
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
Bereinigen von Ressourcen
Wenn Sie diese App nicht weiter verwenden möchten, löschen Sie alle von diesem Schnellstart erstellten Ressourcen. Führen Sie dazu folgende Schritte durch, damit keine Gebühren anfallen:
Klicken Sie ganz links im Azure-Portal auf Ressourcengruppen und anschließend auf die erstellte Ressourcengruppe. Alternativ können Sie das Suchfeld verwenden, um nach der Ressourcengruppe anhand ihres Namens zu suchen.
Wählen im Fenster, das geöffnet wird, die Ressourcengruppe aus, und klicken Sie dann auf Ressourcengruppe löschen.
Geben Sie in dem neuen Fenster den Namen der zu löschenden Ressourcengruppe ein, und klicken Sie dann auf Löschen.
Treten Probleme auf? Verwenden Sie den Leitfaden zur Problembehandlung, oder informieren Sie uns.
Nächste Schritte
In dieser Schnellstartanleitung haben Sie gelernt, wie Sie mithilfe der REST-API eine Echtzeitnachricht von SignalR Service an Clients übertragen. Im nächsten Artikel erfahren Sie mehr über die Entwicklung und Bereitstellung von Azure-Funktionen mit SignalR Service-Bindung auf der Grundlage der REST-API.