博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

jabberd搭建局域网IM

Posted on 2012-08-30 11:28  刘乐  阅读(472)  评论(0)    收藏  举报

Jabber 是著名的Linux即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用。Jabber最有优势的就是其通信协议,可以和多种即时通讯对接。jabber客户端可以连接MSN,GTalk,YahooMessage等。

1、开源的jabber服务器很多,相如Openfire,ejabber等,由于都不是用C开发的,所以选用了jabberd2,安装文件可以到https://launchpad.net/jabberd2/+download?start=20下载,最好是用2.1.*,之后的版本有远程内存错误,网上有说明如果打补丁,但是感觉颇为麻烦就没有使用,使用的是jabberd-2.1.5。

2、安装过程如下

        ./configure --prefix=/usr/local/jabberd2 --enable-ldap --enable-debug --enable-mysql
使用的数据库是mysql,所以之前需要安装mysql,同时间mysql的头文件和lib文件添加到相应的环境变量中.configure以后就是make & make install

       之后需要导入mysql数据表,sql脚本在源代码目录的tools文件夹中,mysql -u root -p* <db-setup.mysql。最好是使用jabberd用户,但是由于闲麻烦,使用了root用户。

       之后是添加jabber用户 groupadd jabber & useradd -g jabber jabber,jabber的启动等在jabber用户下执行,修改安装目录的属性chown -R jabber.jabber /usr/local/jabberd

       建立相应的日志路径和pid存放路径 /usr/local/jabberd/var/jabberd/log & pid

       修改sm.xml和c2s.xml中的mysql登录的用户名密码。以及将log日志设置成file类型,同时执行log日志的存放路径,还有修改sm.xml好c2s.xml中相应的<id>localhost</id>改成是本机的hostname

       /usr/local/jabberd/bin/jabberd启动即可,启动以后查看日志已经/var/log/messages文件是否存在错误,如果没有错误启动成功,现在可以使用客户端登陆了

         jabber的客户端有很多开源的,可以选用PSI,国内各个大的下载网站都能下载到,然后注册新用户,使用的域名是安装jabber服务器的主机名,由于客户机需要识别主机名,所以需要做如下设置linux(修改/etc/hosts),windows(/windows/system32/drivers/etc/hosts),将主机名和ip地址添加到hosts文件。或者在局域网内做一个DNS,可以直接通过DNS解析过去。

        注:psi可以传输文件,但是仅限于局域网内,psi传输文件是通过xmpp协议通知对方文件的大小,文件名,同时会告诉对方,本机在某个端口开发了tcp-server(传输文件使用),对方会根据端口号connect过来,进行文件传输,由于公网无法保证PSI的客户机有独立IP,所以无法实现文件传输(http://psi-im.org/wiki/File_Transfer)。