Whatsapp,Facebook和Skype消息传递在后台如何工作?

Muh*_*mil 3 android websocket socket.io firebase-cloud-messaging

我想问的是:

  1. 这些应用程序是依靠FCM / GCM(或任何其他类型的)推送通知来同步其数据,还是在后台通过服务使用套接字连接?
  2. 如果他们依靠推送通知,那么为什么他们在后台接收通知时没有任何损失,而我却在忙碌的时间中错过了10-15%的通知。
  3. 而且,如果他们依赖于后台的套接字连接,那么这不是像恐龙那样吃电池吗?

我发现,如果我强制停止Messenger和Facebook,我仍然会收到消息,但比平常晚一些。另外,在Messenger,Facebook,Slack和Skype中有一个“允许后台活动”选项,当我禁用它时,我根本不会收到任何通知。有趣的是,WhatsApp在其应用程序信息中没有此选项,如果我强制停止WhatsApp,它只会停止向我显示消息通知。

Sag*_*gar 5

这些应用程序是依靠FCM / GCM(或任何其他类型的)推送通知来同步其数据,还是在后台通过服务使用套接字连接?

他们必须依靠FCM。

如果他们依靠推送通知,那么为什么他们在后台接收通知时没有任何损失,而我却在忙碌的时间中错过了10-15%的通知。

他们必须使用在打ze模式下可靠交付的FCM高优先级

而且,如果他们依赖于后台的套接字连接,那么这不是像恐龙那样吃电池吗?

他们可能没有运行CPU密集型工作。

诸如Whatsapp之类的移动应用程序必须请求权限才能将其从打ze /省电和应用待机模式中排除。您可以在这里参考我的答案以获取更多详细信息。