android开发分享Android是否支持近实时推送通知?

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

这是以推送通知的forms提供的,这是一个定制的协议,它始终保持与iPhone的数据连接,并向应用程序发送二进制数据包,从服务器应用程序发送到电话应用程序0.5到5秒之间,快速popup警报响应时间。 这是作为数据(而不是SMS)发送的,非常小的数据包作为数据计划的一部分而不是作为传入消息收取。

我想知道是否使用Android,有没有类似的设施,或者是否有可能使用Android API来实现接近此目的的东西。 为了澄清,我定义类似于:

我很欣赏应用程序可以基于拉,HTTP请求/响应的风格,但理想情况下,我不希望被重罚只是为了检查通知; 除此之外,它像滴水排水的数据计划。

    Firebase云消息传递FCM常见问题解答是GCM的新版本。 它inheritance了GCM的核心基础架构,在Android,iOS和Chrome上可靠地传递消息。 不过,他们会继续支持GCM,因为很多开发人员现在都在使用GCM SDK来处理通知,而客户端应用升级需要时间。

    截至2012年6月26日, Google Cloud Messaging是向运行在设备上的应用程序发送消息的首选方式。

    以前(现在已被弃用),该服务被称为云到设备消息传递 。

    XMPP是一个很好的解决scheme。 我已经使用它来实现Android实时应用程序。 XMPPfunction强大,可扩展性强,易于集成和使用。

    有大量免费的XMPP服务器(尽pipe出于礼貌你不应该滥用它们),并且有一些开源服务器可以在你自己的盒子上运行。 OpenFire是一个很好的select。

    你想要的图书馆不是如上所述的Smack ,这是一个小问题 。 但是请注意,这是一个构build环境 – 您将不得不构build库。

    这是我对XMPP解决scheme的电池寿命影响的计算:

    Android客户端必须通过周期性唤醒向XMPP服务器发送心跳来维护持续的TCP连接。
    这显然会在用电方面带来成本。 这个成本的估计如下:

    我最近开始玩Android的MQTT ;

    我有一个博客文章的背景资料,以防万一它有帮助

    (注意:MQTT是一项IBM技术,我应该指出,我为IBM工作。)

    看看Xtify平台。 看起来这是他们在做什么,

    Google正在贬低C2DM,但是在他们介绍GCM(Google Cloud Messaging)的地方,我不认为他们有任何配额和免费! 但它确实需要Android 2.2以上!

    如果您可以依赖于Google目标市场的库,那么您可能需要倚重GTalk的function(在现有用户名上注册资源 – 在与BroadcastReceiver进来时拦截它的消息)。

    如果没有,我希望你不能 ,那么你打算捆绑你自己的XMPP版本 。 这是一个痛苦,但是如果XMPP作为一个独立的库单独捆绑,可能会变得更容易。

    您也可以考虑PubSubHubub ,但我不知道它的networking使用情况。 我相信它是build立在XMPP之上的。

    我一直在研究这个和jamesh推荐的PubSubHubBub不是一个选项。 PubSubHubBub用于服务器到服务器通信

    “我支持NAT,我可以订阅Hub吗?Hub不能连接到我。

    /匿名

    不,PSHB是一个服务器到服务器的协议。 如果你在NAT后面,你不是一个真正的服务器。 虽然我们已经对可选的PSHB扩展的想法进行了剔除,但是对于这样的客户端来说,它们并不是在核心规范中进行悬挂获取(“长轮询”)和/或messagebox轮询。 核心规范只是服务器到服务器。

    / Brad Fitzpatrick,旧金山,加利福尼亚州

    资料来源: http : //moderator.appspot.com/#15/e=43e1a&t=426ac&f=b0c2d (直接链接不可能)

    我得出结论,最简单的方法是使用Comet HTTP推送。 这既是一个简单而且很好理解的解决scheme,但它也可以重新用于Web应用程序。

    有一个新的开源项目,用来开发一个用于Android上的推送通知的Java库,使用Meteor慧星服务器作为后端。 您可以在Deacon Project博客上查看。 我们需要开发者,所以请传播这个词!

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

    随着GTalk从SDK中消失,build立一个“标准”推送消息系统可能是一个好主意。 这样,只有一个服务必须运行,只需要打开一个额外的TCP连接。 应用程序应该使用Intents与此服务对话,并且应该首先请求许可发送和接收来自服务的通知。 然后该服务应该通知用户一个新的应用程序想要发送和接收消息。 然后用户将授予或拒绝许可,所以他保持控制。 然后,应用程序将向服务注册一个动作+类别,以便服务知道如何传递推送的消息。

    这个好主意还是不好?

    为什么不用XMPP实现呢? 现在有这么多的公共服务器可用,包括GTalk,JABBER,城堡等。对于Android有一个SDK也可以命名为SMACK。 我们不能说推送通知,但使用XMPP,您可以保持客户端和服务器之间的连接,这将允许双向通信。 意味着Android客户端和服务器都可以相互通信。 目前这将满足在Android的Push的需要。 我已经实现了一个示例代码,它真的很好

    我最近开发了;

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

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

    资源

    GCM的问题是,在这个过程中涉及到很多configuration:

    如果你喜欢简单的东西(如我),你应该尝试UrbanAhiphip 。 它是(恕我直言)在您的应用程序中使用GCM最简单的方法,而不需要做很多configuration。 它也给你一个漂亮的graphics用户界面来testing你的GCM消息是否正确传递。

    注意:我不以任何方式隶属于UrbanAirship

    它是一个非常好的工作解决scheme。

    请尝试一下

    他们的听众必须在代码中使用他们的库类。 你不必担心推动。 您必须将消息发送到服务器服务器将消息推送到设备。 他们使用OAuth。 关于协议,有两种使用CCS和XMPP的方法。 CCS只是使用XMPP作为authentication的传输层,因此您可以使用大多数XMPP库来pipe理连接。 要发送通知给设备,您可以在Android应用程序中编写代码以发送以及您的服务器代码。 消息发送只能由您的代码完成。 在GCM情况下,Google服务器会保留其余的部分。 您可以在此链接查看详细信息

    另外,为了安全问题

    谷歌云消息安全

    如果你的应用程序没有运行,那么设备也可以接收通知,因为你必须为广播监听器编写代码。 在后台,它将监听服务器,每当有消息包在那里,它会收到通知消息。 Android有服务,你不需要打扰它。 你只需要使用这些资源,使你的工作更容易,让他们写,如果你的应用程序没有运行,然后它也收到通知库类。 很显然,会有一些听众让应用程序接收。在此链接中检查“接收消息”部分

    它也会接受用户的请求。 对于GCM,它会做的。 请检查“发送信息”

      以上就是android开发分享Android是否支持近实时推送通知?相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/523497.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐