【问题标题】:How WhatsApp implements delivery receipts for messages pushed through Push Notifications in iOS?WhatsApp 如何为通过 iOS 中的 Push Notifications 推送的消息实现送达回执?
【发布时间】:2015-02-05 16:10:56
【问题描述】:

当用户 Y 离线时,用户 X(在 Android 中有 Whatsapp)尝试向 iOS 中的用户 Y(有 Whatsapp)发送消息。用户 Y 收到一条来自用户 X 的消息的推送通知。一旦收到推送通知,用户 X 就能够在他的 WhatsApp 客户端中看到双勾号。 WhatsApp 如何判断推送通知已成功发送到 iOS 客户端?

【问题讨论】:

  • 我的问题完全正确!你搞清楚了吗?
  • 我也在找这个,你找到答案了吗? @pikini。

标签: ios push-notification xmpp


【解决方案1】:

在发生这种情况时,如果不至少看到 WhatsApp 的协议转储,就真的不可能知道发生了什么,所以随着猖獗的猜测:

我猜 WhatsApp 正在使用 Message Delivery Receipts,它依赖于客户端响应消息,而不是服务器。由于推送通知与中间服务(例如,APNS)对话,中间服务本身不会发送所述接收确认,因此在设备上运行的客户端在收到推送通知后会唤醒,分析消息,并将发送确认发送到对话的发起者。

至少,如果我试图利用现有标准,我会这样做,而这不一定是 WhatsApp 正在做的事情。

【讨论】:

    【解决方案2】:

    Whatsapp 使用基于 TCP 的 XMPP。因此,如果服务器能够获得到 Y 的连接,这应该确保消息已被传递。 因此,如果 whatsapp 服务器能够将消息发送给 Y,则消息将被推出服务器。如果 Y 已启用扩展以发送消息状态,则 Y 会自动向 X 发送带有扩展“已交付”的响应。

    【讨论】:

      【解决方案3】:

      我真的不知道,但我会说 Whatsapp 会在后台保留一项服务来检测它。如果我是正确的,当您完全关闭应用程序(从多任务)并收到一条消息时,如果您不打开应用程序,其他人将不会看到收到的双勾。

      【讨论】:

      • Whatsapp 无法根据 iOS 多任务在 iOS 后台运行服务。
      • 如果应用程序被杀死并且接收者在android应用程序上得到了推送,WhatsApp会显示双勾号。
      猜你喜欢
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多