搭建基于Openfire的即时通讯系统

原文地址:http://blog.csdn.net/zhangheng0423/article/details/8212136

搭建基于Openfire的即时通讯系统

  (2012-08-16 10:48:59)
转载
标签: 

openfire

 

ejabberd

 

sparkweb

 

即时通信

分类: Openfire

    我搭建了一个Demo,服务器选用Openfire,Web客户端采用Sparkweb,Andriod客户端采用Beem,并且可以由Administrator发送广播消息。

    首先简单介绍一下Openfire,优点:开源、Java实现、XMPP协议、高可扩展性、完美支持30,000以下用户、MINA框架、支持离线消息、开发插件容易、Apache 2.0 license,缺点:不支持集群扩展,主要针对于IM服务,消息转发效率较比同级产品有差距。

    大家感兴趣还可以选用Erlang的ejabberd,支持集群性,性能更强,但是用户管理做的不友好,在win下做插件开发困难,但是我也安装了win版与linux版,用以对比Openfire,具体流程会在日后文章中更新。

    现在开始介绍搭建流程。

1. Openfire 安装

    准备,修改C:\WINDOWS\system32\drivers\etc\hosts,添加新行127.0.0.1 im.openfire.com,以im.openfire.com域名作为服务域名,如果服务器不在本地,则IP与域名写远程服务器的相应IP与域名就好,写好后可以测试一下,PING一下域名,看看是否通畅。

       下载安装包,http://www.igniterealtime.org/,这里采用3.7.1 Openfire、2.6.3 Spark、 0.9.0 SparkWeb

     安装前,还需要确认你的服务器上已经配置JDK了!

     安装步骤,选择语言:中文;服务器设定:域名 刚才设定的im.openfire.com,端口默认;数据库:使用自带数据库;管理员用户名密码:设置好用以登陆管理界面;之后各种下一步就可以完成安装了。

     打开Openfire,点击Lanch Admin,输入管理员用户名密码后,可以看到Openfire的管理界面,很漂亮!

     为了测试,可以设置几个用户用以登陆,在用户/组 Tab下选择用户->新建用户

搭建基于Openfire的即时通讯系统_第1张图片


    举个例子,用户名:test,名称:jacky(昵称,显示在客户端大家看到的名字),密码test 点击创建用户。

    这里要区分用户名和JID,JID为用户名+@+服务器域名(im.openfire.com),因为在编辑用户属性->Roster(好友)时,添加名称为JID而非单纯用户名,请大家注意!另外Subscription为both,表示双方认证通过承认对方为好友。

    至此,Openfire安装告一段落。

2. SparkWeb 安装

    首先需要安装Tomcat(如果你的电脑上没有的话),网址为http://tomcat.apache.org/,选择7.0版本,32/64 windows service installer。

     安装中会让大家配置端口,大家可以改成除8080以外其他端口,以免以后开发其他应用占用8080导致tomcat不可用(虽然后来也可以在config中修改,哈哈)。另外安装中会自动加载JDK所在目录。

     在Openfire管理界面中服务器设置开启HttpBinding

     之后将SparkWeb文件夹放在C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps下,浏览器中输入 http://localhost:8080/sparkweb/(8080为默认端口)可以登录Sparkweb,由于此Sparkweb版本我已经做了一些改动,目前可下载到的sparkweb运行会出问题,读者如果有兴趣可以留言,我会打包给大家。

   输入用户名 服务器域名 密码 后可以登录聊天界面,做得很漂亮哦~
3.Beem 安装

    大家如果想使用andriod移动设备,可以下载xmpp客户端,这里举beem一个例子

    安装完成后,点击进入app,选择用已有ID进行登录,点击menu后进入设置界面,Username(JID)为用户名+@+服务器域名,选择Advance setting中的Specific Server 选项,输入服务器的IP地址,选择登录,这时可以发现Beem与Sparkweb可以通信了!

4.Openfire broadcast插件设置

   登录Openfire管理界面,选择插件-插件管理-有效的插件,找到Broadcast后点击右侧的+,然后到插件管理-插件中 可以看到Broadcast已经在安装的插件列表中。

   之后在系统属性中配置Broadcast属性,在新建属性中,填写属性名字与值,以下对值得意义进行说明

    属性: plugin.broadcast.allowedUsers 值: [email protected] 意义:只有这个用户可以发送广播

    属性: plugin.broadcast.disableGroupPermissions 值:false 意义:组内除允许用户其他人不允许发送广播

    属性: plugin.broadcast.serviceName 值:broadcast  意义:设置广播服务的名称

    应用:当用户向[email protected].openfire.com发送消息,则所有人都会收到。

5.参考资料

以下内容为搭建中可能遇到问题所需参考的内容

搭建问题:http://www.cnblogs.com/charley_yang/archive/2011/03/27/1997052.html

Openfire简介:http://www.open-open.com/doc/view/f7a7881d3b70405693750db67caeba77

Openfire消息处理流程:http://wenku.baidu.com/view/323cdb245901020206409c03.html

离线消息处理:http://blog.csdn.net/yjl49/article/details/6626675

spark二次开发:http://huxj62488.iteye.com/blog/615600

openfire源码开发及部署:http://blog.csdn.net/wbw1985/article/details/5484350

broadcast相关:http://www.cnblogs.com/hannover/archive/2009/02/25/1398191.html

你可能感兴趣的:(XMPP)