xmpp的实战(一)

1.什么是xmpp

          XMPP(可扩展通讯和表示协议)可用于服务类实时通讯、表示和需求响应服务中的XML数据元流式传输
       XMPP(可扩展消息处理现场协议)是基于 XML的协议,它用于即时消息IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
       XMPP分为两部分:
       XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。
       XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。
      在后面的章节中我们会以openfire和spark作为xmpp通讯的服务端和客户端作为示例,介绍如何定制openfire的服务端和客户端

2.openfire和spark的简介

       Openfire 采用Java开发,基于XMPP(Jabber)协议的开源实时协作(RTC)服务器。
     
        Spark 是一个基于XMPP 协议,用Java 实现的IM 客户端。
        

3.openfire定制

   

        将openfire源码项目解压到(如果是从SVN CO下来的则不用)eclipse工作目录,例如E:\workspace\openfire,目录结构如图所示:



      打开eclipse,新建java project,项目名命名为openfire,跟放到工作目录的文件夹同名,点击finish,eclipse智能地帮我们搞定了很多东西,包括lib的引入,source folder,如图所示:



      你会发现项目报错,原因cluster跟sip plugin缺少相应的oracle的包,最快方法将这两个plugin的源码删除,以后需要的时候再去oracle下载相应的包导入


       打开ant视图,将build目录下的build.xml拖进去,然后执行openfire任务,成功后会在项目里面生成work跟target两个目录



   debug配置

Main:

Project: openfire

Main class: org.jivesoftware.openfire.starter.ServerStarter


Arguments:

VM: -DopenfireHome="${workspace_loc:openfire}/target/openfire"


Classpath:

添加src/i18n文件夹,src/resources/jar文件夹,build/lib/dist文件夹



至此已经可以正常DEBUG了。

Setup Launch Configuration To Build An Existing Plugin


4.spark的定制

 第一, 在Eclipse下建立一个新的Project。这个project可以就用之前写的那个插件目录。

第二, 此时,新的Project有很多红叉,没关系,我们加入它需要的jar包。右键这个Project->build path->Config build path。

第三, 使用Add External JARS添加之前用ant编译好的spark的target目录下的lib文件。具体位置应该在spark目录下的target\build\lib\下。
第四, 新建一个运行环境:

第五, 我这里改名为SparkWithCamacus。这里的Main class选择spark的那个Startup,然后勾选Stop in main。
第六, 在Arguments标签下添加VM arguments:-Djava.library.path="E:\lhb\spark_lvb\build\lib\dist\windows" 

这里这个path要设置正确,否则会抛一个C开头的什么异常,忘记了。
第七, Common标签和之前配置Spark一样。
第八, 使用ant编译目录下的build.xml文件,生成插件jar包。
第九, 使用Eclipse调试吧!


本期博客先介绍到这,后期会逐步介绍openfire的实例开发和spark的实例开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值