【发布时间】:2016-09-15 02:55:17
【问题描述】:
我在我的应用程序中使用 SignalR 向组中的不同用户发送消息。
我们可以添加/编辑或删除消息,并通过 SignalR 集线器向该组中的所有用户发送相同的操作。
一切正常。
问题是在他的连接丢失/互联网断开或他的笔记本电脑/机器关闭期间发生的其他人操作(消息添加/编辑/删除)可能会丢失。
在恢复连接或再次打开笔记本电脑后,用户必须收到所有错过的消息,以及在他离线期间发生的错过的操作。
我们将所有用户的所有客户端(客户端 ID)存储在数据库中。
谁能指点一下怎么做?
一种解决方案可以是轮询最后一条消息 ID(已到达 ui)以检查是否存在任何新消息,但这无法达到目的,因为消息可能已在服务器上被其他用户编辑/删除。
我已经浏览了以下链接
Can SignalR handle missed messages?
Can a SignalR message loss be detected server side?
How to do guaranteed message delivery with SignalR?
Signalr client to retrieve missed messages on reconnect
https://github.com/JabbR/JabbR/issues/699
但它们都没有涵盖用户离线期间发生的整个历史的方面。
例如,如果您在 Skype 中断开连接并在几小时后返回说,它会提取在此期间发生的所有操作(添加/编辑/删除消息)的所有历史记录并将其更新给最终用户
【问题讨论】:
标签: c# jquery push-notification signalr jabbr