扩展GCM推送。您多久可以执行一次GCM推送?

时间:2013-05-13 01:46:54

标签: android push-notification scalability google-cloud-messaging polling

每个人都告诉我,如果服务器是你的,那么新数据的轮询服务器是愚蠢的,你应该用GCM实现push。好吧,我同意并且已经这样做但是,我想知道,你可以或者应该多久进行一次推动?

我有一个简单的应用程序,人们将内容发布到服务器并提供其他人的帖子。保存到数据库的服务器上的方法也会在最后触发GCM推送,因此Google会向每个人发送推送通知,然后每个人都会重新查询服务器以获取新帖子,其中包含刚刚发布的帖子。

但是,如果我有,那就说milion用户和创建一个新帖子可以说每分钟。这意味着应用程序每隔几分钟就会连接到服务器,并会杀死电池。所以我的问题是,你多久进行一次Push?在这种情况下,每10分钟轮询实际上对电池来说更好,对吗?

我知道这个例子有点疯狂,你的饲料中有数百万人,但它只是为了说明一点,因为我无法想象这会如何扩展。我认为谷歌将处理发送百万gcm消息一次没问题。

所以问题是,是否存在限制,之后Push会产生反作用?我认为这是第一个世界问题:D但是无法想象Facebook会处理这样的事情。

谢谢!

1 个答案:

答案 0 :(得分:1)

当服务器有重要的新数据显示给用户时,欢迎推送通知(重要的是,我的意思是对用户很重要)。

我相信如果有任何应用每分钟都会向我发送通知,我会禁用该应用的通知或卸载该应用。在决定将哪些更新作为推送通知发送给您的用户时,您应该非常小心,以免对抗它们。如果您的服务器可以经常向同一设备发送推送通知,则您的应用中必须具有可以降低这些通知频率的设置选项。

当应用未运行(或在后台运行)时,推送通知通常是相关的。当它在前台运行时,轮询服务器可能是一个更好的解决方案(鉴于免责声明您不能依赖每次传递的推送通知)。

在您的示例中,我不确定是否希望自动收到有关数据库中每个新帖子的通知。即使我正在使用应用程序(即它在前台),我也不希望它自动更新新帖子。即使是facebook也不会自动更新视图(它们会在屏幕上显示您有新帖子,并且您必须将列表视图拉下来才能加载它们。当应用程序未运行时,我会想要仅提醒重要帖子(例如,来自特定用户的帖子)。当应用向我发送过多推送通知时,我会转到其设置以减少它们。

我不能给你一个合理频率的推送通知的数字数字,但我希望我的回答有所帮助。简而言之,您不必担心GCM的技术限制。您应该担心用户体验。