消息推送模块
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/