【问题标题】:Azure Service Fabric WebAPI with SignalR带有 SignalR 的 Azure Service Fabric WebAPI
【发布时间】:2017-01-27 18:02:21
【问题描述】:

我有一个带有带有 signalR 的 Web API 和可靠的 Actor 设置的服务结构集群。

我还有一个单独的 MVC 应用程序,它使用 Web API。

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

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

【问题讨论】:

  • 可能是某些流量流向了一台 SignalR 服务器,但客户端连接到另一台,他们看不到消息,因为您没有任何背板,因此服务器没有与每个服务器通话其他的?

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


【解决方案1】:

我找到的答案是SignalR Scaleout with Redis

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

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

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

【讨论】:

    猜你喜欢
    • 2019-02-18
    • 2016-05-17
    • 2019-11-30
    • 2016-03-11
    • 2016-12-19
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多