ger*_*b0n 5 signalr asp.net-core azure-functions serverless
我将 Azure SignalR 服务与 Azure Functions 结合使用,并且有以下代码:
public class SignalRHubFunction
{
[FunctionName("SignalRConnected")]
public async Task Run([SignalRTrigger("myhubname", "connections", "connected", ConnectionStringSetting = "AzureSignalRConnectionString")] InvocationContext invocationContext, ILogger logger)
{
logger.LogInformation($"{invocationContext.ConnectionId} connected");
}
}
Run Code Online (Sandbox Code Playgroud)
我很难触发“OnConnected”事件。仅提供基于类的模型的示例。而且这些文档对我来说并没有真正的帮助。
文档告诉我构造函数的类别SignalRTrigger参数应该是: connections或messages。所以我使用连接。
该值必须设置为要触发的功能的消息类别。该类别可以是以下值之一: 连接:包括连接和断开连接事件 消息:包括除连接类别中的事件之外的所有其他事件
我不太明白文档中事件参数的含义
该值必须设置为消息事件才能触发该功能。对于消息类别,事件是客户端发送的调用消息中的目标。对于连接类别,仅使用已连接和已断开连接。
我猜他们是说你可以在连接和断开之间进行选择。
然而,使用上面的代码永远不会触发触发器。有什么想法吗?
为了使 SignalRTrigger 工作,您需要为 SignalR 中的函数设置一个 Webhook。
当您使用 SignalRTrigger 部署函数时,它会执行 2 项额外操作:
https://<APP_NAME>.azurewebsites.net/runtime/webhooks/signalrsignalr_extension)(请参阅 Azure 门户函数应用的“应用程序密钥”边栏选项卡中的“系统密钥”部分)SignalR 将事件发布到此 webhook(因此显然这在本地不起作用,除非您有一个可以添加到 SignalR 的公共可寻址 IP)。
要配置 SignalR 事件 Webhook,请转到 SignalR 的“设置”边栏选项卡并添加上游 URLhttps://<APP_NAME>.azurewebsites.net/runtime/webhooks/signalr?code=<API_KEY>
瞧!现在应该可以了
| 归档时间: |
|
| 查看次数: |
2447 次 |
| 最近记录: |