Socket.io messenger如何与多台设备同步工作

Socket.io messenger如何与多台设备同步工作,socket.io,chat,Socket.io,Chat,我正在尝试在我的应用程序中引入messenger(聊天)功能。 我想不出如何在多台设备上同步该功能 假设我正在使用手机聊天,然后我登录到我的桌面并开始在那里聊天。我将如何在两台设备上获取消息,以及两者如何相互同步。此外,为了让发送方获得读取确认,应该从设备中的任何一个读取消息,但是,未读通知应该显示在发件人的设备上,除非他打开并阅读邮件,否则邮件将显示在该设备上。对于问题的第一部分,您希望像FB Messenger那样登录,您会发现您的所有邮件都与设备无关。为了实现这一点,您可以在设备应用程序的

我正在尝试在我的应用程序中引入messenger(聊天)功能。 我想不出如何在多台设备上同步该功能


假设我正在使用手机聊天,然后我登录到我的桌面并开始在那里聊天。我将如何在两台设备上获取消息,以及两者如何相互同步。此外,为了让发送方获得读取确认,应该从设备中的任何一个读取消息,但是,未读通知应该显示在发件人的设备上,除非他打开并阅读邮件,否则邮件将显示在该设备上。

对于问题的第一部分,您希望像FB Messenger那样登录,您会发现您的所有邮件都与设备无关。为了实现这一点,您可以在设备应用程序的最后一次登录时将其发布到服务器,并将从该时间起的所有消息检索给用户。但想象一下,用户已经从手机上阅读了所有信息,但一个月后他就没有打开电脑。如果你没有将信息标记为已读,他会发现大量信息未读,但他实际上是在手机上阅读的,这将给你带来巨大的可用性问题。 对于你的情况,我觉得你需要像FB Messenger那样做。从conv检索最新消息及其实际状态。在按需向上滚动加载时


因此,您的邮件将只有1个状态(已读或未读)和日期,您可以在其中与设备上次同步时间进行匹配。

对于问题的第一部分,您希望像FB Messenger一样登录,您将发现您的所有邮件都与设备无关。为了实现这一点,您可以在设备应用程序的最后一次登录时将其发布到服务器,并将从该时间起的所有消息检索给用户。但想象一下,用户已经从手机上阅读了所有信息,但一个月后他就没有打开电脑。如果你没有将信息标记为已读,他会发现大量信息未读,但他实际上是在手机上阅读的,这将给你带来巨大的可用性问题。 对于你的情况,我觉得你需要像FB Messenger那样做。从conv检索最新消息及其实际状态。在按需向上滚动加载时


因此,您的邮件只有1个状态(已读或未读)和日期,您可以在其中与设备上次同步时间进行匹配。

请编辑问题,将其限制为特定问题,并提供足够的详细信息,以确定适当的答案。避免同时问多个不同的问题。请参阅本页以获取澄清此问题的帮助。为了便于将来参考,如果您觉得有必要在同一个问题中添加前端、后端、数据库和通信方法的标签,那么在这里作为问题提问“太广泛”。确定您希望从应用程序的哪一部分开始,然后在遇到每个问题时询问有关该部分的问题。这就是您“可以”将本网站用作资源的方式。@NeilLunn感谢您的指导。接受并感谢……)请编辑问题,将其限制为特定问题,并提供足够详细的信息,以确定适当的答案。避免同时问多个不同的问题。请参阅本页以获取澄清此问题的帮助。为了便于将来参考,如果您觉得有必要在同一个问题中添加前端、后端、数据库和通信方法的标签,那么在这里作为问题提问“太广泛”。确定您希望从应用程序的哪一部分开始,然后在遇到每个问题时询问有关该部分的问题。这就是您“可以”将本网站用作资源的方式。@NeilLunn感谢您的指导。接受并感谢……)是的,我明白你想表达的意思。完全有道理。:)谢谢那么,您对实施的最终想法是什么?如果我的回答有帮助的话,请注明:)与您推荐的策略相同。我在db中设置了一个标志,用于传递和读取。当用户联机时,将获取所有传递状态为false的消息。若他同时从第二台设备登录,他会在数据库中保存的最后一条消息之后收到消息。当用户向上滚动时,他会继续从服务器获取消息。请让我知道,如果你在这方面提出任何修改。是的,我得到了你想要传达的。完全有道理。:)谢谢那么,您对实施的最终想法是什么?如果我的回答有帮助的话,请注明:)与您推荐的策略相同。我在db中设置了一个标志,用于传递和读取。当用户联机时,将获取所有传递状态为false的消息。若他同时从第二台设备登录,他会在数据库中保存的最后一条消息之后收到消息。当用户向上滚动时,他会继续从服务器获取消息。请让我知道,如果你建议在这方面的任何更多的修改。