假设我的网络连接中断了几秒钟,我错过了一些SignalR服务器推送的消息。
当我重新获得网络连接时,我错过了失去的信息吗?或者,当我重新连接时,signalR会处理它们并将它们推开吗?
如果它不能处理丢失的消息,那么确保一致性的推荐方法是什么?
定期(2-3分钟)轮询以检查server-data?
上的数据。
发布于 2012-04-26 13:04:28
以下是一些想法:
如果您没有每秒发送大量消息,请考虑在消息本身中不发送任何数据。相反,这条消息只是对客户端的一个"ping“,告诉他们在可能的时候去获取服务器数据。正如您所说的,将此与定期民意测验结合起来,您就可以确信您不会错过消息。他们可能会被推迟。
如果您正在快速发送大量消息,那么向每个消息中添加一个顺序ID如何?请考虑SQL标识列。您的客户需要跟踪最近收到的ID。在网络重新连接之后,客户端可以请求从最后一个ID开始的所有消息。如果接收到的消息的ID与最近收到的消息不相邻,您就知道有断开连接,可以向服务器询问丢失的信息。
https://stackoverflow.com/questions/10282099
复制相似问题