在移动应用中始终从服务器获取更新的最佳方法是什么?

时间:2018-03-12 21:17:43

标签: android ios google-cloud-messaging apple-push-notifications server-push

我正在尝试开发一个显示游戏评论的应用程序。您可以猜测数据每分钟都会更新。

我正在考虑使用推送通知(APNS / GCM)来通知应用程序数据更改,应用程序将从服务器下载最新数据。

但这是推进的最佳方法,我应该考虑其他机制吗?我遇到了一些像

  • Web Socket
  • Http Streaming
  • Http Long Polling

我不熟悉上述概念。但是想知道我方案中的最佳方法。

由于

2 个答案:

答案 0 :(得分:0)

我建议不要使用Push Notifications来实现这种功能。

推送通知意味着更多用于营销或警告用户某些事件 - 而不是后端系统。此外,用户可以选择退出推送通知,并可能因为它而无意中破坏您的应用程序。

我已成功使用WebSockets作为实现此目的的一种方法。设置服务器以发送和接收webhook非常简单(我已将它们用于NodeJS,因此here是一个链接 - 但我相信其他语言有许多类似的包。

以下是example library(我相信还有其他人),您可以使用它从您的应用连接到后端服务器。

希望这有助于引导你朝着正确的方向前进;)

编辑:还看到你也在寻找iOS的东西,所以这里有一个适用于iOS的SocketIO

答案 1 :(得分:0)

这是一个实时应用程序的经典示例,它希望非常频繁地接收数据,而无需每次都刷新/重新加载页面。

WebSockets是最好的方式,因为它们允许服务器和客户端之间的全双工持久连接,因此允许同时双向通信,其中服务器本身可以启动通信并将某些数据“推送”到客户端它变得可用。此外,只要应用程序正在运行,连接就会保持打开状态。

但是,从头开始实施整个基础架构既复杂又冗余。理想情况下,人们可以使用提供实时平台的PaaS解决方案,该平台又在内部实现WebSockets。作为开发人员,您可以专注于主要业务逻辑,只需将数据的发布者和订阅者插入此平台,同时以近乎即时的速度处理邮件的路由和传递。

Ably.io是我推荐的一个这样的平台。它们也保证了100%的正常运行时间!