会员控制台 会员登陆 会员注册 最后更新 高级搜索 会员投稿 退出登陆
设为首页
收藏本站
留言给我
  首页 | 操作系统类 | 程序设计类 | 数据库类 | 应用服务类 | 网络及硬件类 | 其他技术 | GBunix论坛
操作系统类
程序设计类
数据库类
应用服务类
网络及硬件类
其他技术
Unix中文 / 应用服务类 / 其他应用 / 用Jabber实现自己的既时通讯系统
用Jabber实现自己的既时通讯系统
2005-05-28    Terry Yu    天极网    点击:
用Jabber实现自己的既时通讯系统 (1)

  随着计算机网络的普及,几乎每个网络用户都在使用着一种或者一种以上的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.gz        jabber服务器本身
  JabberSetup.EXE          jabber的客户端之一,运行在window上
  konverse-0.2-1_rh7.i386.rpm    jabber的客户端之一,运行在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>

了解更多详情,参与讨论,请进入GBUNIX论坛

http://www.gbunix.com/bbs/index.php
责任编辑: trotter
用Jabber实现自己的既时通讯系统 (2) »

相关文章
Redhat Linux 9/AS 3上安装清华紫光拼音输入法智能五笔全拼等 - 05-28 10:20 am - 点击: 4244
Linux中巧妙安装红旗紫光输入法 - 01-13 04:33 pm - 点击: 576
Mandrake 9.0下编译xsim输入法的步骤 - 11-19 12:53 pm - 点击: 134
在RedHat9下安装Chinput中文输入法 - 07-24 12:37 pm - 点击: 668

发表评论 查看评论 加入收藏 Email给朋友 打印本文
给该文章评分
1 2 3 4 5 6 7 8 9 10
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
发表评论
标题:
内容:
声明:本站资讯均来自互联网,所有文章版权归原作者和出版者所有,如涉及版权问题,请来信告知!
Copyright © 2002-2004 GBunix.com. All rights reserved.