共用方式為


回應 Azure SignalR Service 事件

Azure SignalR Service 事件可讓應用程式回應使用新式無伺服器架構連線或中斷連線的用戶端連線。 它不需要複雜的程式碼或昂貴且無效率的輪詢服務來執行此動作。 請改為透過 Azure Event Grid 推送事件給訂閱者,例如:Azure FunctionsAzure Logic Apps,甚至推送至您自己的自訂 HTTP 接聽程式。 在使用 Azure SignalR 時,只需為自己使用的部分付費。

Azure SignalR Service 事件會可靠地傳送至事件方格服務,這可透過豐富的重試原則和無法投遞的信件適用的傳遞方式,向您的應用程式提供可靠的傳遞服務。 如需了解詳細資訊,請參閱 Event Grid 訊息傳遞及重試

Event Grid Model

無伺服器狀態

只有在用戶端連線處於無伺服器狀態時,Azure SignalR Service 事件才會作用。 如果用戶端未路由至中樞伺服器,則會進入無伺服器狀態。 只有在用戶端連線所連線的中樞沒有中樞伺服器時,傳統模式才會運作。 建議使用無伺服器模式作為最佳做法。 若要深入了解服務模式的詳細資訊,請參閱如何選擇服務模式

可用的 Azure SignalR Service 事件

事件方格會使用事件訂閱路由傳送事件訊息至訂閱者。 Azure SignalR Service 事件訂閱支援兩種類型的事件:

事件名稱 描述
Microsoft.SignalRService.ClientConnectionConnected 用戶端連線已連線時引發。
Microsoft.SignalRService.ClientConnectionDisconnected 用戶端連線已中斷連線時引發。

結構描述

Azure SignalR Service 事件包含了回應資料變更時所需的一切資訊。 您可以使用以 Microsoft.SignalRService 開頭的 eventType 屬性識別 Azure SignalR Service 事件。 事件方格事件屬性的其他使用資訊列於事件方格事件結構描述

以下是用戶端連線的連線事件範例:

[{
  "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"
}]

如需詳細資訊,請參閱 SignalR Service 事件結構描述

下一步

深入了解事件方格,並嘗試使用 Azure SignalR Service 事件: