先基于xmpp搞个简单demo,后期 推出 类似于新浪微博和网易新闻的推送功能!
推送方法大概有三种:
1.客户端定时去服务端取或者保持一个长Socket,从本质讲这个不叫推送,这是去服务端拽数据。但是实现简单,主要缺点:耗电等
2.Google的C2DM,具体不细说,缺点,服务器在国外,你懂得,不是很稳定。
3.XMPP协议,它是一种基于XML的传递协议,具有很强的灵活性和可扩展性。它的特点是将复杂性从客户端转移到了服务器端。
一.首先看服务端搭建:下载androidpn-server-0.5.0-bin.zip, http://sourceforge.net/projects/androidpn/files/?source=navbar 点击bin目录下得run.bat,直接搭好服务,在浏览器上输入 http://127.0.0.1:7070 就进入管理界面。如下图:
注意java的环境变量最好用JAVA_HOME的形式
二.客户端实现:
下载工程源码 http://download.csdn.net/my 导入工程,运行前更改一处IP地址,修改androidpn.properties文件中的xmppHost为xmppHost=10.0.2.2
原因:模拟器访问本机需要改成10.0.2.2,要是手机上就改成你部署服务端的电脑的ip;
运行客户端,服务端直接推送就可以成功了!
参阅文献
Openfire http://www.igniterealtime.org/
push-notification http://www.push-notification.org/
androidpnsourceforge http://sourceforge.net/projects/androidpn/