我们构建了一个聊天网络应用,用户第一次从API获取数据,然后使用这些API将数据发送回服务器,我们使用websocket处理新数据(新消息和其他内容)。
今天我们的一位用户告诉我们,在新邮件列表中显示错误的邮件数量,经过数小时的调查后,我发现用户的系统时间错误(与服务器时间差异大约3分钟)
在我们的应用中,我们检查用户是否打开了该会话,然后将当前时间发送回服务器(来自javascript new Date()
)。
我不想让用户丢失任何新消息,即使他们将该会话标记为已读并且在标记过程中新消息到达,如果我从服务器设置时间他们将丢失该新消息,如果我使用浏览器与我们的服务器不完全匹配的时间。
我真的不知道处理此案件是否重要,以及处理此案件的其他应用程序是否正确,以及如何处理此案例?
非常感谢每一点帮助
我不想在每次请求时发送用户检查时间,因此我们的应用会在用户与应用互动后10秒钟发送服务器检查时间(标记为已读)。
答案 0 :(得分:1)
使用从服务器生成的Last-Event-ID发送消息。
并决定您应发送哪条消息。不只是用户时间。