您的位置:首页 > 移动开发 > Android开发

android通过xmpp实现服务器到客户端的推送功能

2014-11-16 18:59 671 查看
最近项目中要做推送功能,除了自己知道的友盟推送外还不知道其它的实现方式,于是就上网百度了一下要实现推送的基本途径,发现主要还有以下几种方式。

1.客户端创建一个socket,与服务器端的serversocket连接,其实就是客户端与服务器一直保持连接,这个其实本质上不能算是推送,只是利用了长连接这一技术实现了揈 送的功能,需要在后台一直启动一个服务与服务器保持连接才可以,还要处理许多意外的情况,如:服务被强制关掉,无法在手机关机的情况下推送等等。总之要处理的情况比较多,不太容易全部处理好。

2.Google的C2DM,具体不细说,缺点,服务器在国外,你懂得,不是很稳定。有兴趣的可以自己去百度学习。

3.XMPP协议,它是一种基于 XML的传递协议,具有很强的灵活性和可扩展性,它的特点是将工作的复杂性从客户端移到了服务器端。QQ等软件用的也都是基于XMPP协议的推送。

下面就说一下,如何搭建好XMPP服务器和客户端,并实现推送的功能。

1.服务器的搭建:xmpp项目组开源了一个小型的服务器,一般情况下这个小型的服务器已经可以满足我们的需求了。稍后我们把整个demo工程(服务器和客户端)上传到我的资源里,有需要的可以下载,只要将客户端和服务器运行起来,就可以实现推送功能了。步骤:1)下载好服务器源码后,解压,进入整个服务器项目的bin目录下,点击run.bat,将服务器程序启动起来。2)等服务器程序完全跑起来后,在浏览器中输入127.0.0.1:7070,进入服务器控制页面,页面截图如下:



看到此图,表明服务器正常启动,下面说一下几个选项卡的用途,home卡就是一个欢迎页面,表示服务器正常启动,Users卡记录了所有与该服务器连接成功过的客户端,以一个列表的形式列出,Sessions列出所有当前在线的客户端,Notifications卡则是我们主动发送推送的地方。

2.创建客户端:下载好xmpp客户程序,导入eclipse后运行时,总是报ClassNotFound,于是自己仿照这的客户端做了一个,可以正常的运行起来,客户端一运行起来后就与推送服务器连接成功,连接成功可以看到服务器上此用户的状态,如图,则表示连接成功:



3.连接成功后,我们就可以向我们的客户端发送推送消息了,发送成功截图:




利用xmpp可以很轻易的搭建一个推送服务器与客户端出来,下面将我的整个工程传上来,大家可以下载去试。要想成功连接到服务器,需要将res/raw/androidpc.property文件中的xmhost改为你要请求的服务器地址才可连接成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐