WhatsApp 之类的应用程序是不是始终与服务器保持实时连接?

Posted

技术标签:

【中文标题】WhatsApp 之类的应用程序是不是始终与服务器保持实时连接?【英文标题】:Do apps like WhatsApp keep an always live connection with server?WhatsApp 之类的应用程序是否始终与服务器保持实时连接? 【发布时间】:2018-02-12 14:59:04 【问题描述】:

我正在创建一个必须与服务器实时同步的应用程序。我不确定是否要有一个始终在线(或每 2 分钟检查一次服务器)应用程序,因为它可能会耗尽电池电量。我的替代方案是什么?

【问题讨论】:

推送通知? 如果您在特定时间间隔更新服务器上的数据,请使用服务 【参考方案1】:

WhatsApp 使用 XMPP(可扩展消息传递和存在协议)来处理消息传递系统。 XMPP 主要类似于 HTTP,客户端通过 XMPP 服务器打开套接字,并在客户端登录时保持打开状态。它不像常规 REST API,客户端打开套接字发送/接收数据并关闭套接字.只要您登录,套接字就会打开。如果 WhatsApp 是永恒的(不是真的,如果连接终止,WhatsApp 会自动重新连接)

【讨论】:

【参考方案2】:

如前所述,使用推送通知(即使应用已关闭)或套接字连接(应用在后台运行)。如果应用程序在前台,您可以使用任何您想要的 - 屏幕会占用大部分电池...

【讨论】:

【参考方案3】:

Whats 应用程序使用 XMPP 服务器,如上述答案中所述。免费,如果你想创建一个像什么应用程序这样的信使应用程序。头可以使用市面上一些免费的实时数据库如“FireBase”服务器。

您可以在此处获取示例代码:https://codelabs.developers.google.com/codelabs/firebase-android/#0

您可以在此处找到有关 firebase 服务器和所需库的更多信息:https://firebase.google.com/docs/database/

【讨论】:

以上是关于WhatsApp 之类的应用程序是不是始终与服务器保持实时连接?的主要内容,如果未能解决你的问题,请参考以下文章

为啥whatsapp web应用程序一直需要电话连接?

WhatsApp 是不是提供开放 API? [关闭]

WhatsApp测试图片共享功能

使用 html 重定向打开 WhatsApp

Agora.io 是不是提供类似 whatsapp 的通话功能?

Swift 4 音频与 Whatsapp 共享