Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A klasszikus ügyfél-/kiszolgálói minta mellett az Azure SignalR Service REST API-k készletét is biztosítja, amelyekkel valós idejű funkciókat integrálhat a kiszolgáló nélküli architektúrába.
Feljegyzés
Az Azure SignalR Service csak a ASP.NET Core SignalR-ben csatlakoztatott ügyfelek kezelésére támogatja a REST API-k használatát. Az ASP.NET SignalR-ben csatlakoztatott ügyfelek egy másik, jelenleg nem támogatott adatprotokollt használnak.
Tipikus kiszolgáló nélküli architektúra az Azure Functions használatával
Az alábbi ábra egy tipikus kiszolgáló nélküli architektúrát mutat be, amely az Azure SignalR Szolgáltatást használja az Azure Functions használatával.
- A
negotiatefüggvény egy tárgyalási választ ad vissza, és minden ügyfelet átirányít az Azure SignalR Szolgáltatásba. - A
broadcastfüggvény meghívja a REST API-t az Azure SignalR Service-hez. Az Azure SignalR Service minden csatlakoztatott ügyfélnek küldi az üzenetet.
Kiszolgáló nélküli architektúrában az ügyfelek állandó kapcsolatban vannak az Azure SignalR Szolgáltatással. Mivel nincs alkalmazáskiszolgáló a forgalom kezelésére, az LISTEN ügyfelek módban vannak. Ebben a módban az ügyfelek fogadhatnak üzeneteket, de nem tudnak üzeneteket küldeni. Az Azure SignalR Szolgáltatás megszakítja az üzeneteket küldő összes ügyfelet, mert az érvénytelen művelet.
Ebben a GitHub-adattárban teljes mintát találhat az Azure SignalR Service és az Azure Functions használatára.
A tárgyalási végpont implementálása
Olyan függvényt negotiate kell implementálnia, amely átirányítási egyeztetési választ ad vissza, hogy az ügyfelek kapcsolódni tudjanak a szolgáltatáshoz.
Egy tipikus tárgyalási válasz formátuma a következő:
{
"url": "https://<service_name>.service.signalr.net/client/?hub=<hub_name>",
"accessToken": "<a typical JWT>"
}
Az accessToken érték a hitelesítési szakaszban leírt algoritmussal jön létre. Az egyetlen különbség az, hogy a aud jogcímnek meg kell egyeznie urla .
A tárgyalási API-t https://<hub_url>/negotiate úgy kell üzemeltetnie, hogy továbbra is használhassa a SignalR-ügyfelet a központi URL-címhez való csatlakozáshoz. További információ az ügyfelek Azure SignalR Service-be való átirányításáról ügyfélkapcsolatokban.
REST API-verziók
Az alábbi táblázat az összes támogatott REST API-verziót mutatja be. Emellett minden API-verzióhoz biztosítja a Swagger-fájlt.
| API-verzió | Állapot | Kikötő | Dokumentáció | Specifikáció |
|---|---|---|---|---|
20220601 |
Legutóbbi | Standard | Cikk | Swagger-fájl |
1.0 |
Stable | Standard | Cikk | Swagger-fájl |
1.0-preview |
Elavult | Standard | Cikk | Swagger-fájl |
Az alábbi táblázat az elérhető API-kat sorolja fel.
A REST API használata
Hitelesítés AccessKey használatával az Azure SignalR Service-ben
Minden HTTP-kérelemben egy JSON-webjogkivonattal (JWT) rendelkező engedélyezési fejléc szükséges az Azure SignalR Service-vel való hitelesítéshez.
Aláíró algoritmus és aláírás
HS256A rendszer aláírási algoritmusként használja a HMAC-SHA256-ot.
Használja az Értéket az AccessKey Azure SignalR Service-példány kapcsolati sztring a létrehozott JWT aláírásához.
Igénylések
A JWT-ben a következő jogcímeket kell figyelembe venni.
| Jogcím típusa | Kötelező | Leírás |
|---|---|---|
aud |
true |
Meg kell egyeznie a HTTP-kérelem URL-címével, nem beleértve a záró perjelet és a lekérdezési paramétereket. A szórási kérelem célközönségének például a következőképpen kell kinéznie: https://example.service.signalr.net/api/v1/hubs/myhub. |
exp |
true |
A jogkivonat lejárati ideje. |
Hitelesítés Microsoft Entra-jogkivonaton keresztül
A microsoft Entra-jogkivonat használatával történő HTTP-kérés hitelesítéséhez AccessKeyhasonlóan a JWT-nek is szüksége van a HTTP-kérések hitelesítésére.
A különbség az, hogy ebben a forgatókönyvben a Microsoft Entra ID létrehozza a JWT-t. További információ: Microsoft Entra-jogkivonatok létrehozása.
A használt hitelesítőadat-hatókörnek a következőnek kell lennie https://signalr.azure.com/.default: .
Szerepköralapú hozzáférés-vezérléssel (RBAC) is engedélyezheti a kérést az ügyféltől vagy a kiszolgálótól az Azure SignalR Service-be. További információ: Hozzáférés engedélyezése a Microsoft Entra-azonosítóval az Azure SignalR Service-hez.
Felhasználóval kapcsolatos REST API
A felhasználóhoz kapcsolódó REST API meghívásához minden ügyfélnek azonosítania kell magát az Azure SignalR Szolgáltatásban. Ellenkező esetben az Azure SignalR Szolgáltatás nem talál célkapcsolatokat a felhasználói azonosítóból.
Az ügyfélazonosítást úgy érheti el, hogy minden ügyfél JWT-jében szerepel egy nameid jogcím, amikor az Azure SignalR Service-hez csatlakozik. Az Azure SignalR szolgáltatás ezután a nameid jogcím értékét használja az egyes ügyfélkapcsolatok felhasználói azonosítójaként.
Minta
Ebben a GitHub-adattárban talál egy teljes konzolalkalmazást, amely bemutatja, hogyan hozhat létre manuálisan REST API HTTP-kérést az Azure SignalR Szolgáltatásban.
A Microsoft.Azure.SignalR.Management használatával is közzéteheti az üzeneteket az Azure SignalR Service-ben a hasonló felületek használatávalIHubContext. Ebben a GitHub-adattárban találhat mintákat. További információ: Azure SignalR Service Management SDK.
Korlátozások
A REST API-kérések jelenleg a következő korlátozásokkal rendelkeznek:
- Az élőfej mérete legfeljebb 16 KB lehet.
- A test mérete legfeljebb 1 MB lehet.
Ha 1 MB-nál nagyobb üzeneteket szeretne küldeni, használja a Service Management SDK-t móddal persistent .