Rövid útmutató: Valós idejű üzenetek szétküldése konzolalkalmazásból
Az Azure SignalR Szolgáltatás REST API-t biztosít a kiszolgáló–ügyfél közötti kommunikációs forgatókönyvek, például a műsorszórás támogatására. Bármely olyan programozási nyelvet választhat, amely REST API-hívásokat indíthat. Küldhet üzenetet minden csatlakoztatott ügyfélnek, név szerint egy adott ügyfélnek, vagy ügyfelek egy csoportjának.
Ebben a rövid útmutatóban megtudhatja, hogyan küldhet üzeneteket parancssori alkalmazásból a csatlakoztatott ügyfélalkalmazásoknak a C#-ban.
Fontos
A cikkben szereplő nyers kapcsolati sztring csak bemutató célokra jelennek meg.
A kapcsolati sztring tartalmazzák azokat az engedélyezési információkat, amelyekre az alkalmazásnak szüksége van az Azure SignalR Szolgáltatás eléréséhez. A kapcsolati sztring belüli hozzáférési kulcs hasonló a szolgáltatás gyökérjelszójához. Éles környezetben mindig védje a hozzáférési kulcsokat. Az Azure Key Vault használatával biztonságosan kezelheti és elforgathatja a kulcsokat, és biztonságossá teheti a kapcsolati sztring a Microsoft Entra-azonosítóval, és engedélyezheti a hozzáférést a Microsoft Entra-azonosítóval.
Kerülje a hozzáférési kulcsok más felhasználók számára való terjesztését, a szigorú kódolást, illetve a mások számára hozzáférhető egyszerű szövegek mentését. Ha úgy véli, hogy illetéktelenek lettek, forgassa el a kulcsokat.
Előfeltételek
Ez a rövid útmutató macOS, Windows vagy Linux rendszeren is futtatható.
- .NET Core SDK
- Az Ön által választott szöveg- vagy kódszerkesztő.
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
Bejelentkezés az Azure-ba
Jelentkezzen be az Azure Portalra Azure-fiókjával.
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
Ebben a szakaszban egy alapszintű Azure SignalR-példányt hoz létre az alkalmazáshoz. Az alábbi lépések az Azure Portal használatával hoznak létre új példányt, de használhatja az Azure CLI-t is. További információ: az signalr create command in the Azure SignalR Service CLI Reference.
- Jelentkezzen be az Azure Portalra.
- A lap bal felső részén válassza az + Erőforrás létrehozása lehetőséget.
- Az Erőforrás létrehozása lap Search szolgáltatás és piactér szövegmezőjében adja meg a signalr kifejezést, majd válassza ki a SignalR szolgáltatást a listából.
- A SignalR szolgáltatás oldalán válassza a Létrehozás lehetőséget.
- Az Alapok lapon adja meg az új SignalR-szolgáltatáspéldány alapvető adatait. Írja be a következő értékeket:
Mező | Ajánlott érték | Leírás |
---|---|---|
Előfizetés | Válassza ki az előfizetését | Válassza ki azt az előfizetést, amelyet egy új SignalR-szolgáltatáspéldány létrehozásához szeretne használni. |
Erőforráscsoport | SignalRTestResources nevű erőforráscsoport létrehozása | Válasszon ki vagy hozzon létre egy erőforráscsoportot a SignalR-erőforráshoz. Hasznos, ha egy új erőforráscsoportot hoz létre ehhez az oktatóanyaghoz ahelyett, hogy meglévő erőforráscsoportot használ. Ha az oktatóanyag elvégzése után szeretné felszabadítani az erőforrásokat, törölje az erőforráscsoportot. Az erőforráscsoport törlése a csoporthoz tartozó összes erőforrást is törli. Ez a művelet nem vonható vissza. Mielőtt töröl egy erőforráscsoportot, győződjön meg arról, hogy nem tartalmazza a megtartani kívánt erőforrásokat. További információk: Erőforráscsoportok használata az Azure-erőforrások kezeléséhez. |
Erőforrás neve | testsignalr | Írja be a SignalR-erőforráshoz használandó egyedi erőforrásnevet. Ha a testsignalr már szerepel a régióban, adjon hozzá egy számjegyet vagy karaktert, amíg a név egyedi nem lesz. A névnek 1–63 karakter hosszúságú sztringnek kell lennie, és csak számokat, betűket és kötőjelet ( - ) tartalmazhat. A név nem kezdődhet és nem végződhet kötőjeljellel, és az egymást követő kötőjelkarakterek érvénytelenek. |
Régió | Régió kiválasztása | Válassza ki az új SignalR-szolgáltatáspéldány megfelelő régióját. Az Azure SignalR szolgáltatás jelenleg nem érhető el minden régióban. További információ: Azure SignalR Service-régió rendelkezésre állása |
Tarifacsomag | Válassza a Módosítás lehetőséget, majd válassza az Ingyenes (Csak dev/Test) lehetőséget. Válassza a Kiválasztás lehetőséget a tarifacsomag kiválasztásának megerősítéséhez. | Az Azure SignalR szolgáltatás három tarifacsomagot tartalmaz: ingyenes, standard és prémium. Az oktatóanyagok az ingyenes szintet használják, hacsak az előfeltételek másként nem rendelkeznek. A szintek és a díjszabás közötti funkcióbeli különbségekről további információt az Azure SignalR Service díjszabásában talál . |
Szolgáltatás mód | Válassza ki a megfelelő szolgáltatási módot | Az Alapértelmezett beállítást akkor használja, ha a SignalR hub logikáját üzemelteti a webalkalmazásokban, és proxyként használja a SignalR szolgáltatást. Kiszolgáló nélküli technológiát, például az Azure Functionst használva üzemeltetheti a SignalR hub logikáját. A klasszikus mód csak a visszamenőleges kompatibilitást szolgálja, ezért nem ajánlott használni. További információ: Szolgáltatás mód az Azure SignalR Service-ben. |
A SignalR-oktatóanyagok Hálózatkezelés és Címkék lapján nem kell módosítania a beállításokat.
- Válassza az Alapismeretek lap alján található Véleményezés + létrehozás gombot.
- A Véleményezés + létrehozás lapon tekintse át az értékeket, majd válassza a Létrehozás lehetőséget. Az üzembe helyezés végrehajtása néhány percet vesz igénybe.
- Amikor az üzembe helyezés befejeződött, válassza az Erőforrás megnyitása gombot.
- A SignalR erőforráslapján válassza a Bal oldali menü Beállítások területén található Kulcsok lehetőséget.
- Másolja ki az elsődleges kulcs kapcsolati sztringét . Erre a kapcsolati sztring van szüksége az alkalmazás konfigurálásához az oktatóanyag későbbi részében.
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
A mintaalkalmazás klónozása
A szolgáltatás üzembe helyezése közben készítsük fel a kódot. Először klónozza a mintaalkalmazást a GitHubról. Ezután állítsa a SignalR service kapcsolati sztring az alkalmazásra. Végül futtassa az alkalmazást helyileg.
Nyisson meg egy git terminálablakot. Váltson át arra a mappára, ahová a mintaprojektet klónozni szeretné.
Az alábbi parancs futtatásával klónozhatja a mintatárházat. Ez a parancs másolatot hoz létre a mintaalkalmazásról az Ön számítógépén.
git clone https://github.com/aspnet/AzureSignalR-samples.git
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
A minta létrehozása és futtatása
Ez a minta egy konzolalkalmazás, amely az Azure SignalR szolgáltatás használatát mutatja be. Kétféle üzemmódot biztosít:
- Kiszolgáló üzemmód: egyszerű parancsok használatával hívja meg az Azure SignalR szolgáltatás REST API-ját.
- Ügyfél üzemmód: csatlakozik az Azure SignalR szolgáltatáshoz, és üzeneteket fogad a kiszolgálótól.
Azt is megtudhatja, hogyan hozhat létre hozzáférési jogkivonatot az Azure SignalR Szolgáltatással való hitelesítéshez.
A végrehajtható fájl létrehozása
A példához a MacOS osx.10.13-x64 rendszert használjuk. A más platformokon való létrehozáshoz tekintse meg a referenciákat.
cd AzureSignalR-samples/samples/Serverless/
dotnet publish -c Release -r osx.10.13-x64
Indítson el egy ügyfelet
A cikkben szereplő nyers kapcsolati sztring csak bemutató célokra jelennek meg. Éles környezetben mindig védje a hozzáférési kulcsokat. Az Azure Key Vault használatával biztonságosan kezelheti és elforgathatja a kulcsokat, és biztonságossá teheti a kapcsolati sztring a Microsoft Entra-azonosítóval, és engedélyezheti a hozzáférést a Microsoft Entra-azonosítóval.
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>
Indítson el egy kiszolgálót
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless server -c "<ConnectionString>" -h <HubName>
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
Futtassa a mintát közzététel nélkül
A következő parancs futtatásával is elindíthat egy kiszolgálót vagy ügyfelet
# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>
# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>
Használjon titkos felhasználói titkos kulcsokat a Kapcsolati sztring megadásához
A dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>"
futtatását a minta gyökérkönyvtárában végezheti. Ezután már nem lesz szüksége a -c "<ConnectionString>"
lehetőségre.
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
Használat
A kiszolgáló elindítása után a paranccsal küldjön üzenetet:
send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast
Több ügyfelet is indíthat különböző ügyfélnevekkel.
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
Integráció nem Microsoft-szolgáltatások
Az Azure SignalR szolgáltatás lehetővé teszi, hogy a nem Microsoft-szolgáltatások integrálhatók a rendszerrel.
A műszaki specifikációk meghatározása
Az alábbi táblázat ismerteti a jelenleg támogatott REST API-k összes verzióját. Az egyes verziók definíciófájlját is megtalálja
Verzió | API-állapot | Ajtó | Specifikusság |
---|---|---|---|
1.0-preview |
Rendelkezésre áll | 5002 | Swagger |
1.0 |
Rendelkezésre áll | Standard | Swagger |
Az egyes verziókhoz elérhető API-k listáját az alábbi lista tartalmazza.
API | 1.0-előzetes verzió | 1.0 |
---|---|---|
Szétküldés mindenkinek | ✓ | ✓ |
Szétküldés egy csoportnak | ✓ | ✓ |
Szétküldés néhány csoportnak | ✓ (elavult) | N / A |
Küldés felhasználónak | ✓ | ✓ |
Küldés néhány felhasználónak | ✓ (elavult) | N / A |
Felhasználó hozzáadása egy csoporthoz | N / A |
✓ |
Felhasználó eltávolítása egy csoportból | N / A |
✓ |
Felhasználói lét ellenőrzése | N / A |
✓ |
Felhasználó eltávolítása az összes csoportból | N / A |
✓ |
Küldés egy kapcsolatra | N / A |
✓ |
Kapcsolat hozzáadása csoporthoz | N / A |
✓ |
Kapcsolat eltávolítása egy csoportból | N / A |
✓ |
Ügyfélkapcsolat bezárása | N / A |
✓ |
Service Health | N / A |
✓ |
Szétküldés mindenkinek
Verzió | API HTTP-metódus | URL-cím kérése | Kérés törzse |
---|---|---|---|
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": [...]} |
Szétküldés egy csoportnak
Verzió | API HTTP-metódus | URL-cím kérése | Kérés törzse |
---|---|---|---|
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": [...]} |
Küldés felhasználónak
Verzió | API HTTP-metódus | URL-cím kérése | Kérés törzse |
---|---|---|---|
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": [...]} |
Felhasználó hozzáadása egy csoporthoz
Verzió | API HTTP-metódus | URL-cím kérése |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Felhasználó eltávolítása egy csoportból
Verzió | API HTTP-metódus | URL-cím kérése |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Felhasználói lét ellenőrzése egy csoportban
API-verzió | API HTTP-metódus | URL-cím kérése |
---|---|---|
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> |
Válasz állapotkódja | Leírás |
---|---|
200 |
A felhasználó létezik |
404 |
A felhasználó nem létezik |
Felhasználó eltávolítása az összes csoportból
API-verzió | API HTTP-metódus | URL-cím kérése |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups |
Üzenet küldése egy kapcsolatnak
API-verzió | API HTTP-metódus | URL-cím kérése | Kérelem törzse |
---|---|---|---|
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
{ "target":"<method-name>", "arguments":[ ... ] } |
Kapcsolat hozzáadása csoporthoz
API-verzió | API HTTP-metódus | URL-cím kérése |
---|---|---|
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> |
Kapcsolat eltávolítása egy csoportból
API-verzió | API HTTP-metódus | URL-cím kérése |
---|---|---|
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> |
Ügyfélkapcsolat bezárása
API-verzió | API HTTP-metódus | URL-cím kérése |
---|---|---|
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-verzió | API HTTP-metódus | URL-cím kérése |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/health |
Válasz állapotkódja | Leírás |
---|---|
200 |
Szolgáltatás jó |
5xx |
Szolgáltatáshiba |
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
Az erőforrások eltávolítása
Ha nem használja tovább az alkalmazást, akkor a következő lépésekkel a mintaalkalmazás által létrehozott összes erőforrást törölheti a költségek elkerülése érdekében:
Az Azure Portalon válassza az Erőforráscsoportok lehetőséget a bal szélen, majd a létrehozott erőforráscsoport. Másik lehetőségként a keresőmezőben, név alapján is rákereshet az erőforráscsoportra.
Az ekkor megnyíló új ablakban válassza ki az erőforráscsoportot, és kattintson az Erőforráscsoport törlése elemre.
Az új ablakban írja be a törölni kívánt erőforráscsoport nevét, majd kattintson a Törlés elemre.
Problémákat tapasztal? Próbálja ki a hibaelhárítási útmutatót , vagy tudassa velünk.
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan lehet a REST API használatával valós idejű üzenetet közvetíteni a SignalR Szolgáltatásból az ügyfeleknek. A következő lépésben megtudhatja, hogyan fejlesztheti és helyezheti üzembe az Azure Functionst a SignalR Service-kötéssel, amely a REST API-ra épül.