标题:基于Qt移动应用的消息推送服务原理与应用
作者:toby520
日期:2015-02-13 15:21
内容:
说到移动应用,大家都觉得移动嘛,当然是Java和Object-c来做啦,什么推送啊,各种系统调用啊,其实不然?如果你了解Qt,
你就知道我说的不然,也有所道理。
* 说道几点
一.目前Android的移动的消息、通知推送
1)轮询(Pull)方式:应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池。
2)SMS(Push)方式:在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,并获取其显示内容进行处理。这是一个不错的想法,我就见过采用这个方案的应用程序。这个方案的好处是,可以实现完全的实时操作。但是问题是这个方案的成本相对比较高,我们需要向移动公司缴纳相应的费用。我们目前很难找到免费的短消息发送网关来实现这种方案。
3)持久连接(Push)方式:这个方案可以解决由轮询带来的性能问题,但是还是会消耗手机的电池。IOS平台的推送服务之所以工作的很好,是因为每一台手机仅仅保持一个与服务器之间的连接,事实上C2DM也是这么工作的。不过刚才也讲了,这个方案存在着很多的不足之处,就是我们很难在手机上实现一个可靠的服务,目前也无法与IOS平台的推送功能相比。
4)Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据。C2DM服务负责处理诸如消息排队等事务并向运行于目标设备上的应用程序分发这些消息。关于C2DM具体使用过程,大家可以去查阅相关的资料.
5)使用第三方推送服务
第三方平台有商用的也有免费的,我们可以根据实现情况使用。关于国内的第三方平台,我感觉目前比较不错的就是极光推送。关于极光推送目前是免费的,我们可以直接使用。关于详细情况,大家可以查看它的主页:http://www.jpush.cn/index.jsp,这里不再详细描述。
关于MQTT的方案,国内最近出现基于 mqtt 的第三方解决方案 云巴 (http://yunba.io),据了解是原 极光推送 CTO 创办的,有兴趣的朋友可以研究下。
关于国外的第三方平台我也见过几个:http://www.push-notification.org/。有兴趣的朋友可以查 ..
#1 [toby520 02-13 17:19]
#2 [foruok 03-03 11:34]
我过几天提供一个使用信鸽推送的例子。感兴趣的关注我博客即可http://blog.csdn.net/foruok。
#3 [toby520 03-03 15:35]
#4 [csoapy 05-04 10:50]
自建推送还是amqp吧?实现有多种,比如RabbitMQ等,这个是第一个有国际标准iso编号的消息队列