javascript - 如何从用户那里获取可靠的时间

标签 javascript google-chrome firefox browser

我们构建了一个聊天网络应用程序,用户第一次从 API 获取数据,然后使用这些 API 将数据发送回服务器,并且我们使用 websocket 来处理新数据(新消息和其他内容)。

今天,我们的一位用户告诉我们,新消息列表中显示的消息数量错误,经过几个小时的调查,我发现用户的系统时间错误(与我们的服务器时间相差大约 3 分钟)。

在我们的应用中,我们检查用户是否打开了该对话,然后将当前时间发送回服务器(来自 javascript new Date())。

我不希望用户丢失任何新消息,即使他们将该对话标记为已读并且在标记过程中新消息到达,如果我从服务器设置时间,他们将丢失该新消息,如果我使用浏览器时间与我们的服务器不完全匹配。

我真的不知道处理这个案例是否重要,以及其他应用程序是否处理这个案例,如果处理这个案例如何?

非常感谢您的每一点帮助

编辑

我不想在每个请求上发送用户检查时间,因此我们的应用程序会在用户与应用程序交互后 10 秒发送服务器检查时间(标记为已读)。

最佳答案

使用服务器生成的 Last-Event-ID 等内容发送消息。

并决定您应该发送哪条消息。不仅仅是用户时间。

关于javascript - 如何从用户那里获取可靠的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28001438/

相关文章:

html - Firefox 的 CSS 问题,但在 Chrome 中有效

javascript - XUL:滚动到顶部并重新加载页面

非 SPA 的 JavaScript 架构

javascript - 如何使用jquery在表单提交之前显示通知?

google-chrome - 如何在本地主机上工作时使用 devtools autosave 保存文件

javascript - 如何在选项卡中保存变量以供 Firefox 扩展使用?

javascript - 将对象键及其值推送到数组

javascript - Backbone.js View 事件未触发

html - 在谷歌浏览器中禁用 ime 模式

html - 如何在 Chrome/Safari 中显示 unicode 表情符号?