SignalR可以处理丢失的消息吗? [英] Can SignalR handle missed messages?

查看:16
本文介绍了SignalR可以处理丢失的消息吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我的网络连接中断了几秒钟,并且我错过了一些SignalR服务器推送的消息。

当我重新获得网络连接时,我错过的邮件是否丢失了?或者是SignalR处理它们并在我重新连接时将它们推出?

如果它无法处理丢失的消息,那么建议采用什么方法来确保一致性?

  • 定期(2-3分钟)轮询以检查服务器数据?
  • 以某种方式检测到客户端的网络丢失并执行Ajax调用以获取有关网络恢复的数据?
  • 其他事情?

推荐答案

以下是几点想法:

如果您每秒发送的消息不多,请考虑不发送消息本身中的数据。相反,该消息只是对客户端的"ping",告诉它们在可能的时候去获取服务器数据。就像你说的那样,把它和定期投票结合起来,你就可以放心,你不会错过信息。他们可能只是延误了。

如果您正在快速发送大量消息,那么为每个消息添加一个序列ID怎么样?考虑一下SQL标识列。您的客户需要跟踪收到的最新ID。网络重新连接后,客户端可以请求自[上次ID]以来的所有消息。如果收到其ID与最近接收的邮件不连续的邮件,则您知道连接已断开,可以向服务器请求丢失的信息。

这篇关于SignalR可以处理丢失的消息吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆