社交网络应用程序如何实时更新它们的 UI?
How do social networking apps update their UI in real-time?
我想知道社交网络应用程序(例如 Twitter、Facebook 和 WhatsApp)如何在其他用户与应用程序的用户交互时实时更新其用户界面。使用我能想到的最佳示例:当您在 WhatsApp 中打开聊天 window 时,当与您聊天的用户与您互动时 UI 会自动更新(无需任何用户操作) .消息显示在您的屏幕上而不刷新,并且当您的聊天伙伴离线或重新在线时,屏幕顶部的 "last seen" 状态会自动更新。我可以想到两种方法来实现这一点:
- 远程推送通知:这种方法让我印象深刻,因为它是 'cleanest' 执行此操作的方法,但它可能也是风险最高的方法。使用静默通知 (
content-available
) 在用户执行某些操作时将数据传递到另一台设备,可能会为您节省大量 HTTP 请求,因此会使您的应用消耗更少的数据并且 CPU用法。这种方法的风险在于,用户可以轻松禁用所有推送通知以节省电池电量(包括静默通知),然后您的应用将无法远程接收事件通知。
- 局部UI提神:这种方法显然是最安全的,但我认为它真的'nasty'最终每个人都会感受到它的缺点。不断刷新 UI 并从数据库中重新检索数据以确保向用户显示最新消息和状态是安全的,因为您的应用不必依赖设备的电池和背景模式设置,但缺点是这会使您的应用消耗大量数据和电池电量,这对用户的数据计划和他的设备不利。我也不认为 Apple 会批准一款消耗如此多数据和电量的应用程序。
我刚刚在我自己的应用程序中实现了聊天功能,我想启用与 WhatsApp 使用的相同的实时 UI 更新。最好的方法是什么?我应该使用上述两种方法之一还是有人可以想出另一种方法来做到这一点?顺便说一句,我是一个相对较新的程序员,最近才学会如何开发 iOS 应用程序 (Swift)。我离专业人士还很远,所以请在解释和工作方法方面放轻松。谢谢!
聊天应用程序利用 WebSockets 创建与客户端和后端服务器的持续连接。
Appcoda 上的这个 article 可以帮助您开始学习 Socket.io。它回答了您的问题,还可以帮助您创建演示应用程序。
我想知道社交网络应用程序(例如 Twitter、Facebook 和 WhatsApp)如何在其他用户与应用程序的用户交互时实时更新其用户界面。使用我能想到的最佳示例:当您在 WhatsApp 中打开聊天 window 时,当与您聊天的用户与您互动时 UI 会自动更新(无需任何用户操作) .消息显示在您的屏幕上而不刷新,并且当您的聊天伙伴离线或重新在线时,屏幕顶部的 "last seen" 状态会自动更新。我可以想到两种方法来实现这一点:
- 远程推送通知:这种方法让我印象深刻,因为它是 'cleanest' 执行此操作的方法,但它可能也是风险最高的方法。使用静默通知 (
content-available
) 在用户执行某些操作时将数据传递到另一台设备,可能会为您节省大量 HTTP 请求,因此会使您的应用消耗更少的数据并且 CPU用法。这种方法的风险在于,用户可以轻松禁用所有推送通知以节省电池电量(包括静默通知),然后您的应用将无法远程接收事件通知。 - 局部UI提神:这种方法显然是最安全的,但我认为它真的'nasty'最终每个人都会感受到它的缺点。不断刷新 UI 并从数据库中重新检索数据以确保向用户显示最新消息和状态是安全的,因为您的应用不必依赖设备的电池和背景模式设置,但缺点是这会使您的应用消耗大量数据和电池电量,这对用户的数据计划和他的设备不利。我也不认为 Apple 会批准一款消耗如此多数据和电量的应用程序。
我刚刚在我自己的应用程序中实现了聊天功能,我想启用与 WhatsApp 使用的相同的实时 UI 更新。最好的方法是什么?我应该使用上述两种方法之一还是有人可以想出另一种方法来做到这一点?顺便说一句,我是一个相对较新的程序员,最近才学会如何开发 iOS 应用程序 (Swift)。我离专业人士还很远,所以请在解释和工作方法方面放轻松。谢谢!
聊天应用程序利用 WebSockets 创建与客户端和后端服务器的持续连接。
Appcoda 上的这个 article 可以帮助您开始学习 Socket.io。它回答了您的问题,还可以帮助您创建演示应用程序。