我最近了解到iPhone应用程序能够接收几乎即时的通知。

这是以推送通知的形式提供的,这是一种定制的协议,可以保持与iPhone的数据连接,并向应用程序发送二进制数据包,它会以极快的速度弹出警报,从服务器应用程序发送到手机应用程序的响应时间为0.5 - 5秒。这是作为数据而不是SMS发送的,以非常非常小的数据包作为数据计划的一部分收费,而不是作为传入消息。

我想知道,如果,使用Android,有一个类似的设施,或者是否有可能实现接近这个使用Android api的东西。为了澄清,我将相似定义为:

不是短信,而是一些数据驱动的解决方案 尽可能的实时 是否可扩展,即作为移动应用程序的服务器部分,我可以在几秒钟内通知数千个应用程序实例

我欣赏的应用程序可以拉基于,HTTP请求/响应风格,但理想情况下,我不想轮询那么严重,只是为了检查通知;除此之外,它就像滴漏数据计划。


当前回答

我找不到我在哪里读到它,但我相信gmail利用一个开放的TCP连接来执行电子邮件推送。

其他回答

我找不到我在哪里读到它,但我相信gmail利用一个开放的TCP连接来执行电子邮件推送。

Why dont you go with the XMPP implementation. right now there are so many public servers available including gtalk, jabber, citadel etc. For Android there is one SDK is also available named as SMACK. This we cant say a push notification but using the XMPP you can keep a connection open between client and server which will allow a two way communication. Means Android client and server both can communicate to each other. At present this will fulfill the need of Push in android. I have implemented a sample code and it really works great

XMPP是一个很好的解决方案。我在一个支持推送的、实时的Android应用程序中使用过它。XMPP功能强大,高度可扩展,易于集成和使用。

有很多免费的XMPP服务器(尽管出于礼貌,您不应该滥用它们),还有一些开源服务器可以在您自己的机器上运行。OpenFire是一个很好的选择。

你想要的库不是上面提到的Smack,而是aSmack。但是请注意,这是一个构建环境—您必须构建库。

以下是我对XMPP解决方案对电池寿命的影响进行的计算:

The Android client must maintain a persistent TCP connection by waking up periodically to send a heartbeat to the XMPP server. This clearly imposes a cost in terms of power usage. An estimate of this cost is provided below: Using a 1400mAh battery (as supplied in the Nexus One and HTC Desire) An idle device, connected to an 3G network, uses approximately 5mA The wake-up, heartbeat, sleep cycle occurs every 5 minutes, takes three seconds to complete and uses 300mA The cost in battery usage per hour is therefore: 36 seconds 300mA = 3mAh sending heartbeat 3600 seconds 5mA = 5mAh at idle 4:95 + 3 = 7:95mAh combined A 1400mAh battery lasts approximately 11.6 days at idle and 7.3 days when running the application, which represents an approximate 37% reduction in battery life. However, a reduction in battery life of 37% represents the absolute worst case in practice given that devices are rarely completely idle.

我最近开发了http://pushdroid.org,它是一个单一的应用程序,应该安装在手机上,就像谷歌已经在2.2中实现了它,从1.5开始工作,并通过意图广播。

谷歌最近(2016年5月18日)宣布Firebase现在是移动开发者的统一平台,包括接近实时的推送通知。它也是多平台的:

该公司现在为所有Firebase用户提供免费和无限的服务 支持iOS、Android和Web的通知。