0

消息推送解决方案

消息推送模块

1.HTTP长连接方式

2.Socket

实现方式:

1、基于openfire服务器+Smack核心包的推送开发(Socket通信机制),需要搭建服务器。

         2、基于 HTTP 1.1协议的长连接开发,需要开发服务器推送后台(Comet框架比如Pushlet

         3、基于WebSocket的方式。

相关介绍

【1】使用XMPP协议(Openfire + Spark + Smack

简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。
优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。
缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。

这种方法需要服务端配合,需要整合openfire服务器,我们的服务端用的php,而这个需要用Java,客户端的代码也需要花一段时间去研究,由于时间有限并没有使用这种方法。不过在后来的开发中,想在程序里加入类似于微信的语音聊天的功能,所以对于这种方式又进行了一段开发,以后我会写一篇文章介绍一下。

【2】使用MQTT协议

简介:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。
优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域(参考:http://mqtt.org/),且已有C++版的服务端组件rsmb。

        基于 WebSocket MQTT 移动推送方案

http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1308_xiangr_mqtt/1308_xiangr_mqtt.html

【3】使用第三方推送服务

          1.Google 云推送服务

鉴于国内的特殊情况,大部分国产手机都砍掉了Google服务,所以这种实现方式不太现实.

2. 百度云推送服务(http://open.baidu.com

3. 极光推送(https://www.jpush.cn/)

【4】WebSocket

1.http://blog.sina.com.cn/s/blog_6002630c0101ijj9.html

2.http://www.jmatrix.org/java/382.html

3.http://www.oschina.net/p/websocket/

天边的星星