Linux中安装Jabberd服务器参考
ztonline
|
1#
ztonline 发表于 2007-02-19 01:07
Linux中安装Jabberd服务器参考
Jabber是一个IM(即时通信)服务器,使用开放的XMPP协议,它的信息流是XML格式的,可实现跨平台通信。通过Jabber转换器,Japper还可与MSN,Yahoo等即时通信服务器连接。一举打破现时IM平台互不兼容的格局。Google talk就是使用Jabber/XMPP来实现的。
Jabber服务器软件有很多种,具体可到这个网址查询:http://www.jabber.org/software/servers.shtml。其中jabberd是用C写的一个Jabber服务器,在Debian中有一个jabber软件包可安装jabberd1.4.3服务器。现在最新的jabberd是2.x版本的,包含了jabber的最新功能,但支持的组件较少,jabberd1.4.x版本中没有包含最新的功能,如不支持SASL。但它的支持组件很多,而且很稳定。所以这里我以jabberd1.4.3版的jabberd服务器进行介绍。 用Debian标准的软件安装方法即可完成软件包的下载和安装。 debian:~# apt-get install jabber 安装完软件后,jabberd服务就会自动启动。我们可用telnet程序与服务器连接测试一下服务器是否能正常工作。 debian:~# telnet localhost 5222 #5222是jabberd服务的默认端口号 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 在上面的状态下输入以下xml文本内容: <stream:stream to='localhost' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'> 按回车,jabber服务器会显示如下信息: <?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='431E92B1' xmlns='jabber:client' from='localhost'> 如果出现如下的信息,则说明jabberd服务器已正常运行。我们可用</stream:stream>语句关闭信息流,退同telnet状态。。 下面我们可以开始配置jabber服务器。jabber的配置文件在/etc/jabber目录下,叫jabber.xml。首先,我们需配置主机名,上面我们是用localhost主机名来测试的。正式使用的话需要有一个唯一的名称来标识该服务器。用vi程序打开该文件,找到这句: <host><jabberd:cmdline flag="h">localhost</jabberd:cmdline></host> 把localhost改成你的主机名,我的主机名是debian,存盘退出。现在我们就可用主机名来访问jabberd服务了,如: debian:~# telnet debian 5222 Trying 127.0.0.1... Connected to debian. #主机名已改变 Escape character is '^]'. 现在我们可以添加一个jabber帐号了,我们可以通过gaim之类的jabber客户端软件自动添加,也可手动方法添加。下面介绍用telnet手动添加的方法,这种方法可让我们详细了解jabberd服务的添加用户的处理过程。 debian:~# telnet debian 5222 Trying 127.0.0.1... Connected to debian. Escape character is '^]'. <stream:stream to="debian" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"> 系统显示以下信息: <?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='431E9B0B' xmlns='jabber:client' from='debian'> 使用以下XML查询注册需提供些什么信息: <iq id='reg1' type='get'> <query xmlns='jabber:iq:register'/> </iq> 查询的结果如下: <iq id='reg1' type='result'> <query xmlns='jabber:iq:register'><password/><password/> <instructions>Choose a username and password to register with this server.</instructions> <name/> <email/> <username/></query> </iq> 这里显示注册需提供password,username,email和name四项信息。下面我把按要求把注册信息发给服务器: <iq id="reg2" type="set"> <query xmlns="jabber:iq:register"> <username>test</username> <password>12345</password> <name>test</name> <email>test@debian</email> </query> </iq> #在这里按回车,如果出现以下信息,则说明注册成功。 <iq id='reg2' type='result'/> 每个注册用户的信息保存在/var/lib/jabber/目录下。现在我们可以用刚注册的帐号登录jabber服务器了,在登录之前,我们可用以下XML命令查询服务器登录需要些什么信息: <iq id="auth1" type="get"> <query xmlns="jabber:iq:auth"> <username>test</username> </query> </iq> 返回的信息如下: <iq id='auth1' type='result'> <query xmlns='jabber:iq:auth'> <username>test</username> <digest/><password/><resource/></query> </iq> <digest/>和<password/>分别表示加密格式的密码和纯文本格式的密码,只需选其中一种即可。<resource>是必须填的,表示连接服务的资源,如我们现在采用的telnet。登录的XML命令如下,我们采用的是不加密的密码方式: <iq id="auth2" type="set"> <query xmlns="jabber:iq:auth"> <username>test</username> <password>12345</password> <resource>telnet</resource> </query> </iq> #这里按回车,如果出现以下信息,则说明登录成功。 <iq id='auth2' type='result'/> 最后,我们要把test用户切换到在线状态。 <presence/> #按回车后会显示以下的欢迎信息 <message from='debian' to='test@debian'> <subject>Welcome!</subject> <body>Welcome to the Jabber server -- we hope you enjoy this service! For information about how to us e Jabber, visit the Jabber User's Guide at http://jabbermanual.jabberstudio.org/</body> <x xmlns='jabber:x:delay' from='test@debian' stamp='20050907T08:01:29'>Offline Storage</x></message> 现在,我们就可发送和接收信息了。发送信息的XML命令格式如下: <message to="jims@debian"> <body>hello jims</body> </message> 如果jims用户已在gaim中登录,则会显示“hello jims”的信息。如果在gaim中发一条叫“hello test,this m essage form gaim.”给test@debian,则会在telnet里收到如下格式的信息: <message type='chat' to='test@debian/telnet' from='yangjing@debian/Gaim'><x xmlns='jabber:x:event'><composing /></x><body>hello test,this message form gaim.</body><html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns='http://www.w3.org/1999/xhtml'>hello test,this message form gaim.</body></html></message> 用以下命令可退出会话: </stream:stream> 从上面的信息可以看到,在jabber传送的信息流是XML格式的。这为jabber服务的扩展提供了很好的发展空间。 |