基于openfire+smack开发Android即时聊天应用[一]---openfire安装部署

Java领域的即时通信解决方案可以考虑基于xmpp协议的openfire+smack+spark来实现,都是开源的。最近一直在研究这个,也做了一个简单的Android即时聊天客户端,支持文本、图片、语音消息。

欢迎大家访问我的个人博客:http://ittiger.cn



1.XMPP协议

大家自行到百度google上去补脑吧。

2.openfire、smack、spark

  1. openfire是基于XMPP 协议的即时通信的服务器端的一个实现,如果你要实现一个简单的点对点通信或是简单的群聊,你完全可以使用该服务openfire本身提供的服务而不需要编写一行服务端的代码,非常方便。同时openfire还支持插件的扩展,如果你需要丰富增加服务端的功能,你可以基于openfire进行插件二次开发,或者直接修改openfire的源码实现。
  2. smack是XMPP传输协议的Java实现,提供了一套API接口(类似于JDK中的HttpUrlConnection提供Http连接请求),它是连接openfire服务、发送通信信息的桥梁。
  3. spark是基于smack实现的一个XMPP即时通信客户端(PC端的),spark貌似也是可以进行插件扩展的。
  4. 官网:http://www.igniterealtime.org/,我目前用的都是最新版本的openfire3.10.2,smack4.1.4
  5. 在smack4.1版本之前,smack本身是不支持Android平台的,不过当时有一个替代品asmack,github地址:https://github.com/flowdalic/asmack,在smack4.1之前我们可以通过asmack来配合openfire来实现Android端的即时通信应用,asmack和smack貌似api都差不多(我没看过asmack)。smack4.1之后就开始支持Android平台了,所以现在可以放弃asmack了。

 

3.Windows下的Openfire安装部署

去官网上下载最新的Openfire安装包,我下载的是不包含JDK的压缩包(Does not include Java JRE),解压就可以用了,前提是你已经装了JDK了,而且JDK版本必须是1.7或以上的版本,Openfire不支持JDK6,解压之后在Openfire的根目录bin目录下执行openfire.exe即可,启动之后如下图


在启动服务配置之前,先在你的数据库中创建一个名为openfire的数据库(支持多种数据库),点击图中的Launch Admin即会在浏览器上打开Openfire的配置界面,如下图:


上图中选择简体中文,然后继续:



上图中配置域,最好配置为你的服务器ip地址或者是域名,其他的默认不管,然后继续:


上图中选择标准数据库连接,继续:


上图中选择你的数据库类型,然后在数据库URL中填写正确的连接字符串,再填上你的数据库用户名和密码,然后继续


上图中直接默认选择初始设置,然后继续:


上图中填上管理员账户admin的邮件地址,然后填上该管理员账户的密码,然后继续:


到上图即表示你的Openfire服务安装配置完成,然后点击登录后进入到管理员登录界面:


Openfire默认的管理员账户为admin,秘密即为上面你设置的密码,登录成功之后,你可以通过这个Openfire管理平台管理该服务商所有的账户信息,服务器信息等。

4.Linux环境下Openfire的安装部署

在官网上下载最新的源码安装包(如: openfire_3_10_2.tar.gz ),我选择的也是不包含jdk的源码安装包,将该包上传至服务器某个目录下,在该目录下执行命令 tar -zxvf openfire_3_10_2.tar.gz,解压完成后切换到Openfire/bin目录下执行命令: ./openfire start 启动Openfire服务,然后在你自己的pc机浏览器上打开http://服务器ip:9090,即会进入Openfire的配置界面,前提是必须准备好一个数据库,配置过程与Windows下的配置过程一样,请参考上面的操作步骤。


OK,Openfire服务的安装配置就介绍完了,下面一篇我就开始介绍smack的用法。


write by laohu

2015-10-30 15:59:54


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值