0

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

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

但是,如果我有,假设有百万用户并创建了一个新帖子,让我们每分钟说一次。这意味着应用程序将每分钟连接到服务器并耗尽电池。所以我的问题是,你多久执行一次推送?在这种情况下,每 10 分钟轮询一次实际上对电池来说不是更好,对吧?

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

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

谢谢!

4

1 回答 1

1

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

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

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

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

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

于 2013-05-13T03:12:57.293 回答