Signalr 服务器端是否可以检测到信号器消息丢失?

Signalr 服务器端是否可以检测到信号器消息丢失?,signalr,Signalr,如果内部缓冲区溢出,信号服务器似乎可以在将消息发送到客户端之前丢弃消息(请参阅)。目前,我们在所有消息中添加一个序列号,以便客户端检测丢失的消息,但我们更希望在服务器上检测消息丢失并在那里处理。这可能吗?信号器处理消息的方式本质上是异步和无状态的。服务器没有检测未接收到消息的内置机制。如果你寄出一封信,除非你问收件人,否则你不知道它是否在途中丢失了 正如@MEYWD在评论中指出的,如果您愿意,可以添加此功能。如果客户机知道它拥有的最新序列号,它可以询问服务器是否有任何尚未收到的消息。扩展信号器来

如果内部缓冲区溢出,信号服务器似乎可以在将消息发送到客户端之前丢弃消息(请参阅)。目前,我们在所有消息中添加一个序列号,以便客户端检测丢失的消息,但我们更希望在服务器上检测消息丢失并在那里处理。这可能吗?

信号器处理消息的方式本质上是异步和无状态的。服务器没有检测未接收到消息的内置机制。如果你寄出一封信,除非你问收件人,否则你不知道它是否在途中丢失了


正如@MEYWD在评论中指出的,如果您愿意,可以添加此功能。如果客户机知道它拥有的最新序列号,它可以询问服务器是否有任何尚未收到的消息。扩展信号器来检测这类事情并不困难。

可能的重复我不认为它是重复的。我想问的是,当Signaler丢弃消息时,是否有可能在服务器上检测到。我之所以将其视为重复消息,是因为在对问题的响应中,它自己解释了原因是缓冲区溢出,这意味着服务器没有接收到消息,现在在我链接的问题中,提出了一个很好的解决方案,即“您的客户端需要跟踪最近收到的ID。在网络重新连接后,客户端可以请求自[最后一个ID]以来的所有消息”是的,我知道链接的解决方案说了什么,关于在消息中添加序列号,我们已经这样做了,但这正是我们想要通过检测服务器上的消息丢失来避免的,这就是为什么我问这个问题。顺便说一下,在我们的设置中,问题与客户端重新连接或服务器接收到的消息无关。这与服务器发送消息的速度比发送到客户机的速度快有关。我认为SignalR开发人员最适合回答这个问题,但是我不认为您想要实现的是什么,我建议使用两种路径之一,1)将消息排队并作为批量发送,2)扩展SignalR以支持您需要的内容。