首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >whatsapp web在iOS上是如何工作的?

whatsapp web在iOS上是如何工作的?
EN

Stack Overflow用户
提问于 2015-08-20 15:47:13
回答 2查看 3.3K关注 0票数 3

Whatsapp支持用于ios的whatsapp web。我在ios上查看了whatsapp web,它工作得很好,但如何工作呢?我关闭了后台应用刷新,然后关闭了whatsapp应用。然后我尝试使用whatsapp web,它工作得很好。当我禁用我的iPhone的互联网连接时,whatsapp web显示“您的手机连接中断”whatsapp是如何知道这一点的?whatsapp在后台是如何工作的,即使它是关闭的?

EN

回答 2

Stack Overflow用户

发布于 2015-08-28 18:44:42

至于在WhatsApp从多任务屏幕关闭的情况下它是如何工作的,它可能是利用了iOS 8对新的VoIP推送消息服务的支持。

https://developer.apple.com/library/prerelease/ios/documentation/Performance/Conceptual/EnergyGuide-iOS/OptimizeVoIP.html

注意“在过去……如果用户退出VoIP应用程序,将无法再接收来自服务器的调用”,但使用新方法时,“如果您的应用程序在收到VoIP推送时没有运行,它将自动重新启动。”

WhatsApp现在在其应用程序中提供VoIP呼叫,因此它确实可以合法使用这些类型的推送消息。在后台启动VoIP推送消息特权是否被认为是滥用,不是为了打电话,而是为了将消息同步到网络上,我不确定,但这似乎是它如何管理它的最可能的解释。

票数 4
EN

Stack Overflow用户

发布于 2015-08-20 16:00:28

也只是猜测,但肯定必须使用静默推送通知方法来唤醒应用程序并与web客户端API交换一些数据,我正在等待有关此机制的更多技术细节,它似乎对任何其他应用程序和用例都非常有用

新增信息:

我已经对它进行了更多的调查,这就是我发现的:

  • 首先, WhatsApp 允许为同一用户打开多个会话,据我所知,这在WhatsApp网站发布之前是不可能的。
  • 第二,当扫描和验证二维码时,WhatsApp网站的网络客户端与一个新启动的进程(可能在WhatsApp服务器的基础架构上)连接,我们称之为FakeClient。FakeClient与WhatsApp建立一个新的会话,表现为一个典型的移动客户端,并以用户的名义与之交互。因此,WhatsApp网络客户端并不直接与WhatsApp的服务器连接,而是通过FakeClient.
  • Third,FakeClient在网络客户端和服务器之间交换消息,但它也会接收来自应用程序的pings,说“嘿!用户还活着”,并将在网络客户端中生成的消息历史记录与iOS应用程序同步。当iOS应用程序在后台运行时,这甚至是可能的,这要归功于后台获取功能。https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
  • Finally,当"FakeClient“停止接收来自iOS应用程序的"pings”时,它会通知网络客户端有关断开连接的信息,因此会显示正确的消息。

这里更有趣的是,即使应用程序被严格关闭()(将其从多任务屏幕中抛出),应用程序如何能够保持连接活动()。为了允许这种行为,苹果似乎已经向这款应用授予了某种特殊的许可,AFAIK目前还没有记录的方法来实现这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32112433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档