【问题标题】:Whats app System Design on sent, delivered readWhatsapp 系统设计已发​​送,已交付阅读
【发布时间】:2021-03-14 04:55:30
【问题描述】:

客户端 A 离线:在这种情况下,当客户端激活时,所有存储的消息(在手机中)是否由客户端应用程序发送到服务器或在连接后 Whatsapp 服务器轮询所有未发送的消息“客户A电话”?是推式活动还是拉式活动? 客户端 B 离线 在这种情况下:服务器发送给客户端应用程序的所有存储(未传递)消息,还是在连接后客户端应用程序轮询来自 Whats 应用程序网络服务器的待处理消息?是推式活动还是拉式活动?

【问题讨论】:

    标签: architecture system-design


    【解决方案1】:

    这两种方式都可以实现。

    我宁愿采用混合方法。

    通常当设备上线时(当互联网打开时),它会询问任何待处理的消息,这是一个拉模型。然后它可以创建与服务器的连接并移动到推送模型。

    这里更详细地描述了这种方法:WhatsApp System Design

    简短总结请参考:https://www.codekarle.com/system-design/Whatsapp-system-design.html

    【讨论】:

      【解决方案2】:

      您可以跟踪用户之间交换的所有消息并标记他们的发送和接收状态。假设 B 在 A 离线时向 A 发送了一条消息,该消息将在存储中保存为“A 尚未收到”。 A 上线后要做的第一件事就是检查所有待处理的消息。此时,A 会收到 B 的消息,并在数据库中进行标记。

      观看codeKarlethis 视频。他们很好地解释了这一点!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-06
        • 1970-01-01
        • 2016-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        相关资源
        最近更新 更多