分享
 
 
 

用Jabber实现自己的既时通讯系统

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

随着计算机网络的普及,几乎每个网络用户都在使用着一种或者一种以上的IM(既时通讯系统),IM满足了人们通过网络进行即时通讯的需要,IM出现很久了,并不是一个新的东西,但在各种新 技术的推动下,IM本身也在不断发展,人们不但也可以通过手机、PDA使用IM,而IM也开始支持语音、视频、手机短信、游戏等功能。

常见的IM软件有很多,但我们国内用的比较多是腾讯QQ、MSN、ICQ了。但是这些IM的服务器端和客户端都是由一各自己的商业机构提供的,所以用户要依赖他们来提供IM服务。

那么可不可以自己架设一套属于自己的IM呢?

Jabber正是这样一个开放源码而且功能强大的IM系统。Jabber是1998年开发出来的,它的信息采用XML格式,属于opensource,您可以免费的得到和使用它,并且可以对其进行二次开发。

Jabber有什么和QQ、MSN、ICQ不一样的功能呢?

Jabber有一个QQ、MSN、ICQ等常见IM所不具备的功能,它可以做为一个代理来帮助Jabber的客户在Jabber上同时使用其它的IM系统,也就是说你只要打开jabber的客户端就可以登录到象ICQ、MSN、yahoo.message上面,并且能和它们收发信息。这样你以后可以不用打开几种不同的IM客户端,只要打开Jabber的客户端就行了,这样是不是很方便呢。

关于jabber更多的信息,可以访问jabber的网站,本文将重点讲如何在Linux上安装和配置Jabber服务,希望你可以借助此文用Jabber实现自己的IM。

下面就开始介绍如何安装一个IM。这个IM将有聊天室功能、同时也支持ICQ、MSN、yahoo.message。

安装环境

Jabber可以安装在多种操作系统上面。笔者用的是RedHat7.3,当然其它的Linux也可以安装Jabber的。另外如果你仅仅是想试试安装的话,至少要两台联网的电脑,否则的话,你需要要有一个真正的网络,Internet或者局域网都可以。如果是在internet上安装,需要有自己的域名和IP,这样就可以向Internet上的所有人提供Jabber服务了,就好象ICQ、MSN一样的,当然你肯定没有它们哪么强负荷能力了:)。如果在局域网中安装,那就只能在本地局域网使用了。

相关软件

Jabber相关的软件可以在jabber.org找到,或者通过google搜索。最好下载最新的版本,因为经常会有新的功能加入。这里用到以下软件。

jabber-1.4.2.tar.gzjabber服务器本身

JabberSetup.EXEjabber的客户端之一,运行在window上

konverse-0.2-1_rh7.i386.rpmjabber的客户端之一,运行在Linux上

conference-0.4.tar.gz

jud-0.4.tar.gz

autojud.tar.gz

icqv7-t-0.3.0pre2.tar.gz

libicq2000-0.3.1.tar.gz

libsigc++-1.0.3-5.i386.rpm

libsigc++-devel-1.0.3-5.i386.rpm

msn-transport-stable.tar.gz

yahoo-t-2.0.0-RC6.tar.gz

安装Jabber Server

Jabber的服务器端是用C写的,你需要用root的权限进行编译,因为它可能要用到一些只有root才能使用的库。

tar -xzpvf jabber-1.4.2.tar.gz -C /usr/local/

cd /usr/local/jabber-1.4.2/

../configure

make

ln -s /usr/local/jabber-1.4.2 /usr/local/jabber

Jabber Server的主要配置文件是jabber.xml。它需要做一些设定,比如

<host>localhost</host>:服务器的主机名

<welcome/>:登录jabber服务器的欢迎信息

<update><jabberd:cmdline

flag="h">localhost</jabberd:cmdline></update>:自动更新,这里删除一行

为了安全,我们不以root的身份来运行jabber,而是创建一个名为jabber的用户。

#adduser jabber

#chown jabber.jabber -R jabber-1.4.2/

以jabber身份启动Jabber Server

su - jabber -c "/usr/local/jabber/jabberd/jabberd & "

安装Jabber Client

Jabber有很多种Client,可以运行在各种平台下。

下载的Windows下的客户端软件,只要双击就开始安装了,不需要额外做设置已经可以用了。

在Linux平台下可以用konverse,以RPM方式安装即可。

安装好客户端后,你可以试着通过它去自己的Jabber

Server上注册用户。当然你得至少注册两个用户,才能够模拟聊天的情形。除非你喜欢自言自语:)

安装聊天室的支持

这里笔者把conference翻译成聊天室,这样好象会有且助于QQ用户对比QQ的聊天室功能来理解。conference其实正是象QQ聊天室一样的东西。你需要安装conference才能实现此项功能。

tar -xzpvf conference-0.4.tar.gz -C /usr/local/jabber

cd conference-0.4/

make

make完了之后,能看到conference-0.4/目录中生成一个文件conference.so.。这表示这次编译已经成功了。接下来就是对jabber.xml进行配置,加入conference服务。

conference分公用和私用两种,在type属性上指定。

在<jsm>的<browse/>项中加入声明一个本地的conference,大约是第220行左右。

定义一个私用的conference服务

<conference type="private" jid="private.localhost" name="Private Conferencing"/>

在<browse>之外定义服务

<service id='private.localhost'>

<load><conference>./conference-0.4/conference.so</conference></load>

<conference xmlns="jabberd:config:conference">

<private/>

<history>30</history>

<vCard>

<FN>Private Conferences</FN>

<DESC>This service is for private conferencing rooms.</DESC>

<URL>http://foo.bar/</URL>

</vCard>

<notice>

<join> has become available</join>

<leave> has left</leave>

<rename> is now known as </rename>

</notice>

</conference>

</service>

定义一个公用的conference服务,与私用的conference服务有些不同。你可以把会议室定义上去

<service id='conference.localhost'>

<load><conference>./conference-0.4/conference.so</conference></load>

<conference xmlns="jabberd:config:conference">

<public/>

<vCard>

<FN>Public Chatrooms</FN>

<DESC>This service is for public chatrooms.</DESC>

<URL>http://foo.bar/</URL>

</vCard>

<history>20</history>

<notice>

<join> has become available</join>

<leave> has left</leave>

<rename> is now known as </rename>

</notice>

<room jid="help@conference.localhost">

<name>Assistance Zone</name>

<privacy/>

</room>

<room jid="admin@conference.localhost">

<name>Adminz only</name>

<secret>con0r</secret>

<notice>

<join> just rocks!</join>

<leave> gets lost</leave>

<rename> feels it is more important to be known as </rename>

</notice>

</room>

</conference>

</service>

在<browse>项中增加以下行:

<conference type="public" jid="conference.localhost" name="Public Chatrooms"/>

上面就定义了一个公用的聊天室服务,并开了两个聊天室。

重启Jabber Server,conference服务才能生效。

安装用户目录JUD

JUD是指Jabber用户目录,顾名思义,它提供了关于Jabber服务上注册用户的目录服务,通过它,可查询某个用户是否在某个jabber上注册过,或者他(她)的详细注册信息。

tar -xzpvf jud-0.4.tar.gz -C /usr/local/jabber

cd /usr/local/jabber/jud-0.4/

make

make完了之后,能看到jud-0.4/目录中生成一个文件jud.so。这表示这次编译已经成功了。接下来就是对jabber.xml进行配置,加入JUB服务。

在<jsm>的<browse/>项中加入声明一个本地的Jud,大约是第220行左右。

<browse>

...

<service type="jud" jid="jud.localhost" name="localhost User

Directory">

<ns>jabber:iq:search</ns>

<ns>jabber:iq:register</ns>

</service>

...

</browse>

在文后加入

<service id="jud">

<host>jud.localhost</host>

<load><jud>./jud-0.4/jud.so</jud></load>

<jud xmlns="jabber:config:jud">

<vCard>

<FN>User Directory on localhost</FN>

<DESC>This service provides a simple user directory

service.</DESC>

<URL>http://localhost/</URL>

</vCard>

</jud>

</service>

重启Jabber Server,JUD才能生效。

安装自动用户目录Autojud

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有