7

我希望用户在重新连接到 Signalr 服务器时检索他们可能错过的消息。

我知道我可以独立于 Signalr 保留消息,跟踪客户端中收到的最后一条消息 id 并在重新连接时重新发送较新的消息,但我正在查看 SqlServer 背板的 Messages_0 表,它有一个 Payload 和 PayloadID 并且想知道是否有是让背板为我执行此操作或扩展背板为我执行此操作的更信号方式。

你知道我该怎么做吗?

4

1 回答 1

3

SignalR 更像是一个实时消息系统,用于向连接的客户端广播请求。如果您要发送给许多客户端,则没有内置方法来跟踪广播消息是否由特定的解耦客户端检索。服务总线/队列机制更适合该 IE - MSMQ、Rhino 服务总线、RabbitMQ 等。您绝对可以构建一个队列来处理请求并密切关注哪些身份仍连接到集线器并让 SignalR 处理广播通信的一部分,如果一个身份解耦并返回到一个组,则仅重新发送到该身份。

采用纯服务总线方法的唯一问题是客户端必须在他们的机器上正确设置协议,例如需要 MSMQ 服务器核心集成的 MSMQ,这增加了部署的复杂性。

于 2014-11-21T15:44:59.167 回答