社交网络应用如何实时更新其 UI?

Mar*_*ols 4 ios whatsapp

我想知道当另一个用户与应用程序的用户交互时,社交网络应用程序(例如 Twitter、Facebook 和 WhatsApp)如何实时更新其用户界面。举个我能想到的最好的例子:当你在 WhatsApp 中打开一个聊天窗口时,当你与之聊天的用户与你互动时,UI 会自动更新(无需任何用户操作)。消息显示在您的屏幕上而不会刷新,并且当您的聊天伙伴离线或重新在线时,屏幕顶部的“上次查看”状态会自动更新。我可以想到两种方法来实现这一点:

  1. 远程推送通知:这种方法在我看来是“最干净”的方法,但它可能也是最危险的方法。content-available在用户执行某些操作时使用静默通知 ( ) 将数据传递到另一台设备,可能会为您节省大量 HTTP 请求,从而使您的应用程序消耗更少的数据和 CPU 使用量。这种方法的风险在于,用户可以轻松禁用所有推送通知以节省电池电量(包括静默通知),然后您的应用将无法远程获得事件通知。
  2. 局部 UI 刷新:这种方式显然是最安全的,但我认为它真的很“讨厌”,最终每个人都会感受到它的缺点。不断刷新 UI 并从数据库中重新检索数据以确保向用户显示最新消息和状态是安全的,因为您的应用程序不必依赖于设备的电池和后台模式设置,但是缺点是这会使您的应用程序消耗大量数据和电池电量,这对用户的数据计划和他的设备不利。我也不认为苹果会批准一个消耗如此多数据和电量的应用程序。

我刚刚在我自己的应用程序中实现了一个聊天功能,我想启用与 WhatsApp 使用的相同的实时 UI 更新。什么是最好的方法来做到这一点?我应该使用上述两种方法之一还是有人可以想到另一种方法来做到这一点?顺便说一下,我是一个相对较新的程序员,最近刚刚学会了如何开发 iOS 应用程序 (Swift)。我离专业还很远,所以请在解释和工作方法能力上放轻松。谢谢!

Pun*_*rma 5

聊天应用程序使用WebSockets创建与客户端和后端服务器的持续连接。

Appcoda 上的这篇文章可以帮助您开始学习 Socket.io。它可以回答您的问题,还可以帮助您创建演示应用程序。