Push notification 谷歌云消息服务的可靠性

Push notification 谷歌云消息服务的可靠性,push-notification,push,google-cloud-messaging,Push Notification,Push,Google Cloud Messaging,我正在研究是否可以将服务器中发生的重要事件通知应用程序用户。所以,我尝试谷歌云消息来实现推送通知。 不幸的是,我可以看到邮件被延迟交付,没有确切的延迟交付时间。我甚至 尝试用gmail发送邮件,但gmail本身的推送通知没有时间限制。 所以,我发现我不能使用谷歌云消息服务向用户发送重要事件。 是否有其他方法通知用户重要事件 注意:我不想使用短信。我也不想退出应用程序,因为它会消耗电池寿命 提前感谢您的帮助。可能是由于其他问题,也可能是由于发送服务器的地理位置和接收方的IP地址。GCM是您用来尽快

我正在研究是否可以将服务器中发生的重要事件通知应用程序用户。所以,我尝试谷歌云消息来实现推送通知。 不幸的是,我可以看到邮件被延迟交付,没有确切的延迟交付时间。我甚至 尝试用gmail发送邮件,但gmail本身的推送通知没有时间限制。 所以,我发现我不能使用谷歌云消息服务向用户发送重要事件。 是否有其他方法通知用户重要事件

注意:我不想使用短信。我也不想退出应用程序,因为它会消耗电池寿命


提前感谢您的帮助。

可能是由于其他问题,也可能是由于发送服务器的地理位置和接收方的IP地址。

GCM是您用来尽快向用户推送消息的工具。您可以在邮件中指定何时需要发送邮件-可能是gmail使用delay_while_idle标志保存电池。根据我的经验,GCM非常非常快。只有在很短的时间内将多个更新推送到同一设备时,您才应该体验节流


事实上,这是由于522852295230端口在我的服务器中被阻塞。因此,需要网络管理员对其进行解锁。另外,如果facebook应用程序、gmail等其他接收器处于活动状态,并且说他们被你的服务器管理员阻塞了,那么他们的同步将不成功,并且在以后同步你的应用程序时需要花费时间。

这可能是由于谷歌云消息中不现实的心跳间隔造成的

GCM的工作原理是维护从Android设备到谷歌服务器的空闲套接字连接。这很好,因为它几乎不消耗电池电量(与轮询相反),并且它允许设备在收到消息时立即被唤醒

为了确保连接保持活动状态,Android将在移动连接上每28分钟发送一次心跳,在WiFi上每15分钟发送一次心跳。如果心跳失败,则连接已终止,GCM将重新建立连接并尝试检索任何挂起的推送通知。心跳间隔越高,电池消耗越少,设备从睡眠中醒来的次数也越少

然而,这需要付出巨大的代价:心跳间隔越长,识别断开的套接字连接所需的时间就越长。在部署GCM之前,谷歌还没有在现实生活中充分测试这些时间间隔。这些间隔的问题是由网络路由器和移动运营商造成的,他们在几分钟不活动后断开空闲的套接字连接

有关更多信息,请访问我的博客:

作为一种解决方案,考虑Puxy(),这是GCM/FCM的替代品,大大提高了通知速度和可靠性(完全公开-我创建了PUBY)。