你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
响应 Azure SignalR 服务事件
Azure SignalR 服务事件允许应用程序使用新式无服务器体系结构响应客户端连接的连接或断开连接。 为此,它无需复杂的代码或高价低效的轮询服务。 而是可以通过 Azure 事件网格向订阅方(如 Azure Functions、Azure 逻辑应用,或者甚至是你自己的自定义 HTTP 侦听器)推送事件。 如果使用 Azure SignalR,则只需为你使用的内容付费。
Azure SignalR 服务事件可靠地发送到事件网格服务,该服务通过丰富的重试策略和死信传递向应用程序提供可靠的传递服务。 若要了解详细信息,请参阅事件网格消息传递和重试。
无服务器状态
只有在客户端连接处于无服务器状态时,Azure SignalR 服务事件才处于活动状态。 如果客户端未路由到中心服务器,则会进入无服务器状态。 仅当客户端连接连接到的中心没有中心服务器时,经典模式才适用。 建议最好使用无服务器模式。 若要了解服务模式的更多详细信息,请参阅如何选择服务模式。
可用的 Azure SignalR 服务事件
事件网格使用事件订阅将事件消息路由到订阅方。 Azure SignalR 服务事件订阅支持两种类型的事件:
事件名称 | 描述 |
---|---|
Microsoft.SignalRService.ClientConnectionConnected |
建立客户端连接时出现。 |
Microsoft.SignalRService.ClientConnectionDisconnected |
断开客户端连接时出现。 |
事件架构
Azure SignalR 服务事件包含响应数据中的更改所需的所有信息。 可以使用 eventType 属性从 Microsoft.SignalRService 开始标识Azure SignalR 服务事件。 关于事件网格事件属性使用情况的其他信息,请参阅事件网格事件架构文档。
下面是客户端连接事件的示例:
[{
"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 服务事件架构。
后续步骤
详细了解事件网格并尝试使用 Azure SignalR 服务事件: