Snabbstart: Sända realtidsmeddelanden från konsolapp
Azure SignalR Service tillhandahåller REST API för att stödja kommunikationsscenarier från server till klient, till exempel sändning. Du kan välja valfritt programmeringsspråk som kan göra REST API-anrop. Du kan publicera meddelanden till alla anslutna klienter, en specifik klient per namn eller en grupp med klienter.
I den här snabbstarten får du lära dig hur du skickar meddelanden från en kommandoradsapp till anslutna klientappar i C#.
Viktigt!
Råa anslutningssträng visas endast i den här artikeln i demonstrationssyfte.
En anslutningssträng innehåller den auktoriseringsinformation som krävs för att ditt program ska få åtkomst till Azure SignalR Service. Åtkomstnyckeln i anslutningssträng liknar ett rotlösenord för din tjänst. Skydda alltid dina åtkomstnycklar i produktionsmiljöer. Använd Azure Key Vault för att hantera och rotera dina nycklar på ett säkert sätt och skydda dina anslutningssträng med hjälp av Microsoft Entra-ID och auktorisera åtkomst med Microsoft Entra-ID.
Undvik att distribuera åtkomstnycklar till andra användare, hårdkoda dem eller spara dem var som helst i oformaterad text som är tillgänglig för andra. Rotera dina nycklar om du tror att de har komprometterats.
Förutsättningar
Den här snabbstarten kan köras på macOS, Windows eller Linux.
- .NET Core SDK
- Valfri textredigerare eller kodredigerare.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Har du problem? Prova felsökningsguiden eller meddela oss.
Logga in på Azure
Logga in på Azure Portal med ditt Azure-konto.
Har du problem? Prova felsökningsguiden eller meddela oss.
I det här avsnittet skapar du en grundläggande Azure SignalR-instans som ska användas för din app. Följande steg använder Azure Portal för att skapa en ny instans, men du kan också använda Azure CLI. Mer information finns i kommandot az signalr create i Cli-referensen för Azure SignalR Service.
- Logga in på Azure-portalen.
- Välj + Skapa en resurs längst upp till vänster på sidan.
- På sidan Skapa en resurs går du till textrutan tjänsten Search s och marketplace och anger signalr och väljer sedan SignalR Service i listan.
- På sidan SignalR Service väljer du Skapa.
- På fliken Grundläggande anger du viktig information för din nya SignalR Service-instans. Ange följande värden:
Fält | Föreslaget värde | beskrivning |
---|---|---|
Abonnemang | Välj din prenumeration | Välj den prenumeration som du vill använda för att skapa en ny SignalR Service-instans. |
Resursgrupp | Skapa en resursgrupp med namnet SignalRTestResources | Välj eller skapa en resursgrupp för SignalR-resursen. Det är användbart att skapa en ny resursgrupp för den här självstudien i stället för att använda en befintlig resursgrupp. Om du vill frigöra resurser när du har slutfört självstudien tar du bort resursgruppen. Om du tar bort en resursgrupp tas även alla resurser som tillhör gruppen bort. Det går inte att ångra den här åtgärden. Innan du tar bort en resursgrupp kontrollerar du att den inte innehåller resurser som du vill behålla. Mer information finns i Using resource groups to manage your Azure resources (Hantera dina Azure-resurser med hjälp av resursgrupper). |
Resursnamn | testsignalr | Ange ett unikt resursnamn för SignalR-resursen. Om testsignaler redan har tagits i din region lägger du till en siffra eller ett tecken tills namnet är unikt. Namnet måste vara en sträng på 1 till 63 tecken och innehålla endast siffror, bokstäver och bindestreck ( - ). Namnet kan inte starta eller sluta med bindestreckstecknet och efterföljande bindestreck är inte giltiga. |
Region | Välj din region | Välj lämplig region för din nya SignalR Service-instans. Azure SignalR Service är för närvarande inte tillgängligt i alla regioner. Mer information finns i Tillgänglighet för Azure SignalR Service-regionen |
Prisnivå | Välj Ändra och välj sedan Kostnadsfri (endast dev/test). Välj Välj för att bekräfta ditt val av prisnivå. | Azure SignalR Service har tre prisnivåer: Kostnadsfri, Standard och Premium. Självstudier använder den kostnadsfria nivån, om inget annat anges i förutsättningarna. Mer information om funktionsskillnader mellan nivåer och priser finns i Prissättning för Azure SignalR Service |
Tjänstläge | Välj lämpligt tjänstläge | Använd Standard när du är värd för SignalR Hub-logiken i dina webbappar och använder SignalR-tjänsten som proxy. Använd Serverlös när du använder serverlösa tekniker som Azure Functions som värd för SignalR Hub-logiken. Klassiskt läge är endast för bakåtkompatibilitet och rekommenderas inte att använda. Mer information finns i Tjänstläge i Azure SignalR Service. |
Du behöver inte ändra inställningarna på flikarna Nätverk och Taggar för SignalR-självstudierna.
- Välj knappen Granska + skapa längst ned på fliken Grundläggande.
- På fliken Granska + skapa granskar du värdena och väljer sedan Skapa. Det tar en stund innan distributionen har slutförts.
- När distributionen är klar väljer du knappen Gå till resurs .
- På sidan SignalR-resurs väljer du Nycklar på menyn till vänster under Inställningar.
- Kopiera anslutningssträngen för primärnyckeln. Du behöver den här anslutningssträng för att konfigurera appen senare i den här självstudien.
Har du problem? Prova felsökningsguiden eller meddela oss.
Klona exempelprogrammet
Medan tjänsten distribueras ska vi förbereda koden. Klona först exempelappen från GitHub. Ställ sedan in SignalR Service-anslutningssträng till appen. Kör slutligen programmet lokalt.
Öppna ett git-terminalfönster. Byt till en mapp där du vill klona exempelprojektet.
Klona exempellagringsplatsen med följande kommando. Detta kommando skapar en kopia av exempelappen på din dator.
git clone https://github.com/aspnet/AzureSignalR-samples.git
Har du problem? Prova felsökningsguiden eller meddela oss.
Skapa och köra exempelappen
Det här exemplet är en konsolapp som visar användningen av Azure SignalR Service. Den har två lägen:
- Serverläge: använder enkla kommandon för att anropa Azure SignalR Service REST API.
- Klientläge: anslut till Azure SignalR Service och få meddelanden från servern.
Du får också lära dig hur du genererar en åtkomsttoken för att autentisera med Azure SignalR Service.
Skapa den körbara filen
Vi använder macOS osx.10.13-x64 som exempel. Det finns referenser till hur du bygger på andra plattformar.
cd AzureSignalR-samples/samples/Serverless/
dotnet publish -c Release -r osx.10.13-x64
Starta en klient
Råa anslutningssträng visas endast i den här artikeln i demonstrationssyfte. Skydda alltid dina åtkomstnycklar i produktionsmiljöer. Använd Azure Key Vault för att hantera och rotera dina nycklar på ett säkert sätt och skydda dina anslutningssträng med hjälp av Microsoft Entra-ID och auktorisera åtkomst med Microsoft Entra-ID.
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>
Starta en server
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless server -c "<ConnectionString>" -h <HubName>
Har du problem? Prova felsökningsguiden eller meddela oss.
Kör exemplet utan att publicera
Du kan också köra följande kommando för att starta en server eller klient
# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>
# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>
Använda användarhemligheter för att ange anslutningssträng
Du kan köra dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>"
i exemplets rotkatalog. Efter det behöver du inte alternativet -c "<ConnectionString>"
längre.
Har du problem? Prova felsökningsguiden eller meddela oss.
Förbrukning
När servern har startats använder du kommandot för att skicka meddelandet:
send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast
Du kan starta flera klienter med olika klientnamn.
Har du problem? Prova felsökningsguiden eller meddela oss.
Integrering med icke-Microsoft-tjänster
Med Azure SignalR-tjänsten kan icke-Microsoft-tjänster integreras med systemet.
Definition av tekniska specifikationer
Följande tabell visar alla versioner av de REST API:er som stöds hittills. Du hittar även definitionsfilen för varje specifika version
Version | API-tillstånd | Door | Specifikt |
---|---|---|---|
1.0-preview |
Tillgängligt | 5002 | Swagger |
1.0 |
Tillgängligt | Standard | Swagger |
Listan över tillgängliga API:er för varje specifika version finns i följande lista.
API | 1.0-förhandsversion | 1.0 |
---|---|---|
Sänd till alla | ✓ | ✓ |
Sänd till en grupp | ✓ | ✓ |
Sänd till vissa grupper | √ (Inaktuell) | N / A |
Skicka till en användare | ✓ | ✓ |
Skicka till vissa användare | √ (Inaktuell) | N / A |
Lägga till användare i en grupp | N / A |
✓ |
Ta bort en användare från en grupp | N / A |
✓ |
Kontrollera användarens existens | N / A |
✓ |
Ta bort en användare från alla grupper | N / A |
✓ |
Skicka till en anslutning | N / A |
✓ |
Lägga till en anslutning till en grupp | N / A |
✓ |
Ta bort en anslutning från en grupp | N / A |
✓ |
Stäng en klientanslutning | N / A |
✓ |
Tjänsthälsa | N / A |
✓ |
Sänd till alla
Version | API HTTP-metod | Begärans-URL | Begärandetext |
---|---|---|---|
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": [...]} |
Sänd till en grupp
Version | API HTTP-metod | Begärans-URL | Begärandetext |
---|---|---|---|
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": [...]} |
Skicka till en användare
Version | API HTTP-metod | Begärans-URL | Begärandetext |
---|---|---|---|
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": [...]} |
Lägga till användare i en grupp
Version | API HTTP-metod | Begärans-URL |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Ta bort en användare från en grupp
Version | API HTTP-metod | Begärans-URL |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Kontrollera användarens existens i en grupp
API-version | API HTTP-metod | Begärans-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> |
Statuskod för svar | beskrivning |
---|---|
200 |
Användaren finns |
404 |
Användaren finns inte |
Ta bort en användare från alla grupper
API-version | API HTTP-metod | Begärans-URL |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups |
Skicka meddelande till en anslutning
API-version | API HTTP-metod | Begärans-URL | Begärandetext |
---|---|---|---|
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
{ "target":"<method-name>", "arguments":[ ... ] } |
Lägga till en anslutning till en grupp
API-version | API HTTP-metod | Begärans-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> |
Ta bort en anslutning från en grupp
API-version | API HTTP-metod | Begärans-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> |
Stäng en klientanslutning
API-version | API HTTP-metod | Begärans-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> |
Service Health
API-version | API HTTP-metod | Begärans-URL |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/health |
Statuskod för svar | beskrivning |
---|---|
200 |
Service Bra |
5xx |
Tjänstfel |
Har du problem? Prova felsökningsguiden eller meddela oss.
Rensa resurser
Om du inte planerar att fortsätta använda den här appen tar du bort alla resurser som skapades i snabbstarten med följande steg, så att inga kostnader uppstår:
Välj Resursgrupper i Azure Portal längst till vänster och välj sedan den resursgrupp du skapat. Du kan också använda sökrutan till att hitta resursgruppen efter dess namn.
Markera resursgruppen i fönstret som öppnas och klicka sedan på Ta bort resursgrupp.
I det nya fönstret skriver du namnet på resursgruppen som ska tas bort. Klicka sedan på Ta bort.
Har du problem? Prova felsökningsguiden eller meddela oss.
Nästa steg
I den här snabbstarten har du lärt dig hur du använder REST API för att sända realtidsmeddelanden från SignalR Service till klienter. Läs sedan mer om hur du utvecklar och distribuerar Azure Functions med SignalR Service-bindning, som bygger på REST API.