Udostępnij za pośrednictwem


Reagowanie na zdarzenia usługi Azure SignalR Service

Zdarzenia usługi Azure SignalR Service umożliwiają aplikacjom reagowanie na połączenia klientów połączonych lub rozłączonych przy użyciu nowoczesnych architektur bezserwerowych. Nie wymaga to skomplikowanego kodu ani kosztownych i nieefektywnych usług sondowania. Zamiast tego zdarzenia są wypychane za pośrednictwem usługi Azure Event Grid do subskrybentów, takich jak Azure Functions, Azure Logic Apps, a nawet do własnego niestandardowego odbiornika http. Dzięki usłudze Azure SignalR płacisz tylko za to, co zużywasz.

Zdarzenia usługi Azure SignalR Service są niezawodnie wysyłane do usługi Event Grid, która zapewnia niezawodne usługi dostarczania do aplikacji za pośrednictwem zaawansowanych zasad ponawiania prób i dostarczania utraconych komunikatów. Aby dowiedzieć się więcej, zobacz Dostarczanie komunikatów usługi Event Grid i ponawianie próby.

Event Grid Model

Stan bezserwerowy

Zdarzenia usługi Azure SignalR Service są aktywne tylko wtedy, gdy połączenia klientów są w stanie bezserwerowym. Jeśli klient nie kieruje do serwera koncentratora, przechodzi do stanu bezserwerowego. Tryb klasyczny działa tylko wtedy, gdy koncentrator, z którymi łączą się połączenia klienta, nie ma serwera koncentratora. Tryb bezserwerowy jest zalecany jako najlepsze rozwiązanie. Aby dowiedzieć się więcej na temat trybu usługi, zobacz Jak wybrać tryb usługi.

Dostępne zdarzenia usługi Azure SignalR Service

Usługa Event Grid używa subskrypcji zdarzeń do kierowania komunikatów zdarzeń do subskrybentów. Subskrypcje zdarzeń usługi Azure SignalR Service obsługują dwa typy zdarzeń:

Nazwa zdarzenia opis
Microsoft.SignalRService.ClientConnectionConnected Zgłaszane, gdy połączenie klienta jest połączone.
Microsoft.SignalRService.ClientConnectionDisconnected Zgłaszane po rozłączeniu połączenia klienta.

Schemat zdarzeń

Zdarzenia usługi Azure SignalR Service zawierają wszystkie informacje potrzebne do reagowania na zmiany w danych. Zdarzenie usługi Azure SignalR Service można zidentyfikować za pomocą właściwości eventType rozpoczynającej się od elementu Microsoft.SignalRService. Dodatkowe informacje o użyciu właściwości zdarzeń usługi Event Grid są udokumentowane w schemacie zdarzeń usługi Event Grid.

Oto przykład zdarzenia połączonego połączenia klienta:

[{
  "topic": "/subscriptions/{subscription-id}/resourceGroups/signalr-rg/providers/Microsoft.SignalRService/SignalR/signalr-resource",
  "subject": "/hub/chat",
  "eventType": "Microsoft.SignalRService.ClientConnectionConnected",
  "eventTime": "2019-06-10T18:41:00.9584103Z",
  "id": "831e1650-001e-001b-66ab-eeb76e069631",
  "data": {
    "timestamp": "2019-06-10T18:41:00.9584103Z",
    "hubName": "chat",
    "connectionId": "crH0uxVSvP61p5wkFY1x1A",
    "userId": "user-eymwyo23"
  },
  "dataVersion": "1.0",
  "metadataVersion": "1"
}]

Aby uzyskać więcej informacji, zobacz Schemat zdarzeń usługi SignalR Service.

Następne kroki

Dowiedz się więcej o usłudze Event Grid i udostępniaj zdarzenia usługi Azure SignalR Service za próbę: