Service Fabric 参与者和 SignalR

Service Fabric Actors and SignalR

我希望有人能给我指出正确的方向。我在 https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-pattern-distributed-networks-and-graphs/#smart-cache-code-sample-groupchat 看到了 Actors 的聊天示例,但该示例仅显示了聊天故事的一部分。 Chat 对我来说是一个很好的例子,因为它与我要解决的问题类似。

对于我的问题,将消息推送到 Actor 网络的客户端也需要在该网络状态发生变化时接收更新。我相信最明显的工具是 SignalR,但我有点卡在这一点上。 Actor SDK 似乎没有提供从 Actor 流出状态更改的可靠方式。从我读到的内容来看,Actor Events 对于这种情况似乎不够可靠(我猜是这种情况,因为文档说 "best effort")。

所以就拿顺丰站的聊天例子来说吧。我从那里去哪里?我如何从 ASP.NET Signalr Hub 订阅 Actor 更新?

到目前为止,我想到的最佳答案是将 pub/sub 内容从 Service Fabric Actors 中移出并转移到另一个工具中。例如,对于我的特定问题,我使用 Redis 的 pub/sub 功能。

通常,您希望客户与参与者之间存在一对一的关系,或者客户与参与者之间存在一对多的关系。话虽如此,我会设计它以便客户端向演员发送消息,而演员负责确保将消息传递到 "session"(通过提醒)。通过可靠收集 "session",我将会话视为有状态服务。当更新到达会话时,他们调用集线器方法将更改广播到适当的客户端。