首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实现可靠的推送消息服务?

如何实现可靠的推送消息服务?
EN

Stack Overflow用户
提问于 2012-05-24 15:44:24
回答 5查看 3K关注 0票数 16

既然我想在移动应用中建立可靠的通信,我能从第三方推送服务(C2DM,APN,城市飞艇)得到推送失败的报告(可能设备离线)吗?或者我们需要自己构建它?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-05-31 21:44:36

Android C2DM的目标是为您的服务器应用程序提供一种节省电池的方式,以便向移动设备发出信号,表明它想要开始可靠的通信。

您可以组织您的消息,使每个新的C2DM包含自上次与服务器进行双向交互以来发生的所有内容(即“来拿我得到的任何东西”)。你的失败交付报告隐含在移动设备中,没有及时响应(你可以这样做,因为你知道C2DM激活你的应用程序是有目的的)。

这真的比在有损介质中保证每条消息的递送更糟糕吗?好吧,更糟糕的是,你还必须实现一个主要的通信方法。但无论如何您都必须这样做,因为C2DM是仅入站的,对吧?

票数 4
EN

Stack Overflow用户

发布于 2012-05-29 06:32:22

正如Vinay所说,MQTT可能会为您提供您想要的功能。当客户端连接到服务器时,它可以向服务器注册“最后遗嘱和遗嘱”消息。如果客户端意外断开连接,服务器会将此消息发送到指示它执行此操作的主题。

在此方案中,您的客户端可以将消息"online“发送到client//status之类的内容,并将消息"offline”注册为同一主题的LWT。然后,您可以拥有一个侦听主题client/+/status的服务器本地客户端,它将知道哪些客户端在线,哪些客户端离线。

我建议tokudu demo不是最好的地方。Dale Lane的这篇博客文章深入了解了在Android上使用MQTT:http://dalelane.co.uk/blog/?p=1599,并在http://stephendnicholas.com/archives/219上对MQTT的电源使用情况(同样是在Android上)进行了审查

有一些客户端实现同时适用于IOS和Android,参见http://mqtt.org/software

票数 2
EN

Stack Overflow用户

发布于 2012-05-28 18:39:58

我建议使用IBM MQTT协议进行推送通知。这对于推送通知来说已经足够了。查看来自https://github.com/tokudu/AndroidPushNotificationsDemo的演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10733233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档