带有 SignalR 的 Azure Service Fabric WebAPI

标签 azure asp.net-web-api signalr azure-service-fabric

我有一个 Service Fabric 集群,其中包含带有 signalR 的 Web API 和可靠的 Actor 设置。

我还有一个单独的 MVC 应用程序来访问 Web API。

我可以使用 MVC 应用程序很好地连接到 signalR,一切正常。但是,当我使用可靠的参与者调用 API 时,该参与者应该触发向 MVC 应用程序连接的组发送 signalR 广播,但我的 MVC 应用程序上没有任何反应。我知道它正在访问 API,因为我已经记录了它以确定。

我已将负载均衡器设置为客户端 IP 的 session 持久性。我怀疑 signalR 集线器可能不是同一个“集线器”或其在另一个节点上?有什么方法可以强制它们都在同一个上以便进行通信吗?我是不是忘记了什么?如果我需要提供更多信息,请告诉我。

最佳答案

我找到的答案是 SignalR Scaleout with Redis

基本上,这使用 redis 在服务结构中的所有节点之间共享 signalR 消息。

只需设置 Redis,引用 Microsoft.AspNet.SignalR.Redis 并将其添加到您的启动中:

GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(redisConnectionString, "SignalR"));

关于带有 SignalR 的 Azure Service Fabric WebAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39583477/

相关文章:

azure - 从 WebJob Application Insights 中筛选出 Azure ServiceBus 日志

asp.net - 如何根据内部数组使用 OData 进行过滤?

使用 SignalR 时 Watin 超时

postgresql - 如何在.net核心项目中使用SignalR Core监听Postgresql数据库?

azure - 如何通过 REST API、Powershell 或 Azure CLI 提取 Azure 资源模板格式

Azure 中的 API 安全最佳实践

c# - Cosmos db OFFSET LIMIT 子句不起作用

c# - 无法加载文件或程序集 'System.Web.Http.Owin'

c# - WebAPI 2 自定义路由

c# - 从 .net 代码和 JavaScript 调用 SignalR hub