【网学网提醒】:网学会员,鉴于大家对Android基于XMPP协议的数据推送技术十分关注,会员在此为大家搜集整理了“Android基于XMPP协议的数据推送技术”一文,供大家参考学习!
文档源于:com.lilin.doyourimagine
深入学习XMPP协议
一.XMPP(协议简介)
XMPP协议(ExtensibleMessagingandPresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。
二.IM(即时通讯软件简介)
InstantMessenger,及时通信软件,就是大家使用的QQ、MSNMessenger和Gtalk等等。其中Gtalk就是基于XMPP协议的一个实现,其他的则不是。当前IM几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM应用,比如说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。
文档源于:com.lilin.doyourimagine
三.本文主要内容
本文主要讲解在android使用xmpp协议进行即时通信,所涉及3个主要的东西,它们是openfire、smack和spark,这个三个东东结合起来就是完整的xmppIM实现,这里简单介绍一下这3个东东在下文的作用:
openfire主要是作为服务器,负责管理客户端的通信连接,以及提供客户端一些通信信息和连接信息。
Smack主要是xmpp协议的实现,提供了一套很好的api,所以下面操作xmpp都是通过使用smack的api来实现,当然因为是在android里,所以使用的是asmack这个包,里面方法跟smack包差不多。
Spark是IM客户端的实现,其实就是使用了smack的api实现的。
数据通讯具体实现的流程:
文档源于:com.lilin.doyourimagine
四.开发具体配置环境:
1.配置openfire服务器
Openfire是一个强大的即时消息(IM)和聊天服务器,它实现了XMPP协议,可以使用它轻易的构建高效率的即时通信服务器.
其安装和部署都十分简单,并利用Web进行管理。单台服务器可支持上万并发用户,由于是采用开放的XMPP协议,可以使用各种支持XMPP协议的IM客户端软件登陆服务。安装前准备工作:
一:Java运行环境(已安装则可跳过此步骤)
官方
下载地址:oracle/technetwork/java/javase/downloads/index.html二:数据库(之前已安装则可跳过此步骤)
数据库可以使用DB2,Oracle,MySQL,PostgreSQL,SQLServer等其中任意一种安装前准备工作完成后:一:建立数据库
a.建立数据库,记下数据库名,如OpenfireServer。b.在数据库管理系统下建立新用户,如OpenfireUser。
选择SQLserver身份验证,把强制密码过期的勾去掉,只勾上强制实施密码策略。在下面的数据库下拉列表中选择OpenfireServer,然后确定即可。
c.然后在OpenfireServer数据库目录下,在其安全性中,新建一个用户,用户名任取。登录名选择上面创建的OpenfireUser,架构选择db_owner,数据库角色成员身份选择db_owner,二:安装Openfire
a.到官方
下载最新版的Openfire安装包
官方网址为:igniterealtime.org/projects/openfire/b.双击Openfire安装包开始安装
安装完毕后,会有提示框提示是否登录,此时先放着不动三:执行数据库脚本
文档源于:com.lilin.doyourimagine
a.到Openfire安装目录下:如D:\ProgramFiles\Openfire\resources\database下面有几个数据库的SQL脚本,直接拖动到SQLServerStudio中执行,执行前确保可用数据库下拉列表选中的是OpenfireServer。
b.接着连接对象资源管理器,使用SQLServer身份验证方式,输入用户名OpenfireUser,密码
尝试进行登录操作。若成功登陆,则证明数据库建立成功。四:首次设置Openfire
a.点击Openfire提示框中LaunchAdmin按钮,进入首次设置页面b.语言选择简体中文数据库选择标准数据库连接
选择相应的数据库驱动类型;URL一栏中,把[hostname]改成当前的主机名;把[database]改成数据库名OpenfireServer;接着分号后面的Appname全部去掉;点击continue,设置密码——>>结束五:重启Openfire
然后登录管理页面,进行Openfire管理。至此,恭喜您,Openfire部署安装完成。
配置成功如果以后ip地址变了,那肯定又是开不了,解决办法请移步:blog.csdn.net/HappySheepherder/article/details/4707124
配置成功后,在服务器创建一个简单的用户来测试,然后安装spark,设置好服务器的ip与端口,使用刚才创建的用户登录,登录OK说明服务器成功搭建。
2.客户端配置要求
(1)android2.2平台及以上。(2)asmack-jse.jar开发必须包。
文档源于:com.lilin.doyourimagine
(3)客户端Eclispse,服务端MyeclipseIDE开发环境。
五.具体实例展示
1.先建一个Android项目。
2.导入项目必须的XMPP协议jar包。
4通过XMPP协议规则,进行数据通讯。
最后我们就可以利用connection进行连接,登录,
注册....
最后如有错误请包容,学习资料如有不够深入,请选择其它专业
资料。谢谢.....