我希望用户在重新连接到Signalr服务器时检索他们可能错过的消息。
我知道我可以独立于Signalr保留消息,跟踪客户端收到的最后一条消息ID,并在重新连接时重新发送更新的消息,但我正在查看SqlServer背板的Messages_0表,它有一个Payload和PayloadID,想知道是否有更多的Signalr'方法让背板为我做这件事或延长背板为我做这件事。
你有什么想法我会这样做吗?
答案 0 :(得分:2)
SignalR更像是用于向连接的客户端广播请求的实时消息系统。如果您发送给许多客户端,则没有内置的方法来跟踪特定解耦客户端检索到的广播消息。服务总线/队列机制更适合IE - MSMQ,Rhino Service Bus,RabbitMQ等。您绝对可以构建一个处理请求的队列,并密切关注哪些身份仍然连接到集线器并让SignalR处理广播通信的一部分,如果一个身份分离并返回到一个组只重新发送到该身份。
使用纯服务总线方法的唯一方法是客户端必须在其机器上正确设置协议,例如需要MSMQ服务器核心集成的MSMQ,这增加了部署的复杂性。