版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Jabber协议的挪动即时通讯系统研究与实现摘要本文利用支持Jabber协议的开源效劳器ildFire,在基于J2E平台的 上实现了一个挪动即时通讯系统,该系统不但具有传统即时通讯的文本信息传递功能,还具备拍照、传递照片、群组聊天以及查看资讯等功能。关键字J2E;即时通讯;Jabber;ildFire;XL;XPP1课题研究背景挪动I(Instantessage),也就是挪动即时信息(即时通信、即时通讯)工具,是挪动终端与即时通讯工具的结合。从最初的挪动QQ、 SN,到陆续出现的“飞信、“超信、“灵信,当然还有不容无视的PIA,各类型的挪动即时通讯工具让用户通过 就可以与朋友或工作伙伴进展
2、实时交谈、互传信息、娱乐消遣,它们正改变着我们的沟通形式甚至生活习惯。但长期以来各I软件厂商推出的I软件互相独立,缺乏基于统一标准的互用性,使得各种I系统之间无法互相发送信息,例如AL与Yah,SN与AL,SN与QQ等,它们之间就不能互相通信。因此,制订一种统一的协议就迫在眉睫,这种统一协议应当可用于E-ail、eb和语音流的简单邮件传输协议(STP)、 和实时协议(RTP)等I应用。由Jabber组织开展的Jabber协议,其中包含支持符合IETF标准的即时消息和Presene技术的根本协议形成了XPP协议,XPP(ExtensibleessagingandPresenePrtl,即可扩展消
3、息处理现场协议)为用于现场的消息路由处理的XL数据流协议,被确立为IETF标准。本文的研究工作正是基于这一背景。2总体方案设计2.1总体思路2.2Jabber与ildFire效劳器Jabber就像IQ,SN一样,是一个基于Internet的即时通讯系统,但是同这些即时通讯软件不同的是,它是一个开放的即时通讯系统,也是一个基于XLStrea的协议,用于在Internet上的两个实体之间交换信息,现场状态(presene)和其它的构造化信息。你可以自己架设自己的Jabber效劳器,使用不同的Jabberlient软件,而不像IQ或SN,依赖于AI或SN的效劳器和软件。IETF已经将Jabber定为
4、即时通讯和现场技术的标准协议,称为XPP(ExtensibleessagingandPresenePrtl),相关的标准是RF3920和RF3921。ildfire是一款获得许多荣誉的Jabber即时消息效劳器,采用Java开发,可以使用任何支持Jabber的客户端如psi、gai等连接。其主要特点有易于安装、管理、定制以及和其它应用程序集成,有基于GPL的开放源代码版本和商业版本。2.3J2E介绍J2E是SUN公司在小型设备上的开发平台,它的主要技术优势在于:良好的跨平台才能与J2EE后端无缝的结合才能和Java语言的优良特色,如简单平安以及现有的Java平台上的开发工具。3关键技术研究3.
5、1与SN、IQ系统通讯Jabber效劳器中的Transprt组件是沟通Jabber和非Jabber协议之间差异的组件。当使用Jabber效劳器访问非Jabber系统时,Transprt组件隐藏了系统之间的差异,这样,用户在访问的时候根本感觉不到自己访问的是外部的系统。但是,当用户第一次访问非Jabber系统时,需要向Jabbertransprt注册,注册内容就是用户名和将要使用的外部系统之类的信息。一旦注册成功之后,就可以在外部系统上发送和接收消息。3.2网络连接策略本文的挪动即时通讯系统支持 和Sket两种连接方式。其中,Sket连接方式为默认连接方式,但是不同品牌和型号的 以及中国挪动各地
6、区网络对Sket的支持有差异,所以当Sket连接不被支持的时候系统会自动切换到 连接方式。3.3拍照及照片传送技术客户端通过bileediaapi(api)中的videntrl来实现,通过调用videntrl的getsnapsht()方法实现。然后,对数据进展base64编码转换为字符串嵌入xl流;效劳器收到收据后解码并利用J2E的Iage类复原图像。3.4消息传递中编码考虑在系统实际开发中,我们通常面临不同的挪动终端,有些设备的编码就必须特殊处理。比方,本文采用NKIA的S60平台机型,NKIAS60 在接收IS8859-1编码时不是与大多数 那样直接以UTF-8编码方式接收,它只支持IS8
7、859-1方式接收。但是这种方式接收后,封装在IS8859-1流中的xl的数据会又一次被进展IS8859-1编码转换,等于是在对这条封装在IS8859-1流中的xl语句又封装了一个IS8859-1的外壳。所以客户端要想得到UTF-8的数据,必须进展两次编码转换,首先剥掉这层IS8859-1的外壳,得到正常的IS8859-1数据流,才能向其它机型那样进展正常的IS8859-1向UTF-8编码的转换。4关键模块实现本文实现的挪动即时通讯系统支持群组消息形式。在群组消息模块中,登录的注册用户可以通过 来实现传统P平台的聊天室功能。Jabber的群组聊天或会议机制允许多人同时进展交流,这是对传统即时通
8、讯功能的扩展。详细的业务流程是首先由用户读取群组列表选择登录目的。然后,进展登录并将用户ID注册到这个组中。完成注册后,系统会将本组内的其它成员信息(比方成员列表)发送到当前用户的客户端上。这时系统的会话组件已经为这个群组内地成员做好了消息传递准备,也就是说某个用户的信息可以被效劳器传递到群组中的每一个成员。详细的实现过程如下:4.1读取群组列表名单当用户进入聊天室模块时,客户端首先发送一个xl语句向效劳器发出恳求,效劳器收到后返回一个xl语句,客户端解析后读出聊天室列表,并进展屏幕显示,供用户选择。发送的xl语句:iqid=disRst=nferene.type=get/iq接收的xl语句:
9、iteaxusers=30nae=绿色军营jid=10_lvenferene.upants=25/iteiteaxusers=30nae=缘分天空jid=20_skynferene.upants=18/iteiteaxusers=20nae=玫瑰情话jid=30_eyenferene.upants=8/ite/query/iq4.2用户的在群组中的登记需要参加一个指定的群组时(它的ID已经由用户指定或在接到聊天邀请时确定),首先发送一个presene元素。注意在发送中不要添加resure名,这是老的gruphat的做法,如今的nferene已经不采用了。假如你需要向下兼容性,可以发送resur
10、enae。接下来,发送包含xlns=Jabber:iq:brse的iqtype=set,这个恳求包含了一个或多个nik元素,它指明了你希望参加的会议的别名。一旦你接到一个成功回应,也就意味着你已经参加这个聊天室。客户端接收成员信息语句:in16/inlevel3/level/ite/x/presene当客户端开场接收信息时,就意味指着恳求成功了,那么客户端需要建立一个Gruphat实例,并且不断将接收的信息添加到这个实例中。4.3群组成员列表的读取每个群组都有成员列表,说明当前在群组中的人员。它会随着人员参加或分开而改变。本系统通过在Gruphat类中设置一个UUser的属性,它是一个Vetr
11、的变量,每一个元素都是一个UUser实例,存放着每一个聊天室成员的个人信息,如jid、昵称、等级、级别等。客户端每收到一条presene语句,解析后都会更新这个属性。群组成员的presene语句:in2/inlevel4/level/x/presene4.4群组中即时消息的发送一般来说群组消息传递时有两种最根本的形式,一种是公共消息,就是对所有人发送的信息,这种信息当前群内的所有成员都可以收到;另一种是私有信息,这种信息其实是群中的点对点消息传递,也就是说虽然是在群中,但效劳器只会将其发送给群组中指定的成员。在本系统的群组消息模块中,成功的实现了这两种方式。群组消息的格式与点对点消息传递的格式
12、根本一样,它们都是通过essage对象进展封装的。它们的区别在于type类型一个是gruphat,而另一个是hat。效劳器端收到消息后,会根据type的值来判断这条消息是否群组消息。下面各给出一条xl语句来说明:公共消息格式:bdy你好/bdyxstap=2022/11/19/18:21:48xlns=Jabber:x:delay/xxtie=2022/11/19/18:21:48xlns=Jabber:x:delay/x/x/essage私有消息格式:essagetype=hatfr=605414t=30_eyenferene./太阳bdyhell/bdyxxlns=Jabber:x:del
13、aystap=2022/11/19/12:0:16/essage在G即时通讯系统中,对于客户端来说,一个聊天室就是一个Gruphat类型的对象,那么参加一个聊天室,本质上就是创立一个Gruphat对象的实例。对Gruphat实例的访问我们可以群组消息传递的所有功能。Gruphat类继承了hat类,而hat类又继承至nversatin类,可以说它是一个由一个根本会话类不断扩展而来的,即一个功能更强大的会话类。它的最主要的功能就是对当前聊天室内的成员以及他们的发言进展管理,比方添加新的信息(新的发言)、成员的变更等等。Gruphat还有一个非常重要的方法,就是bradast()方法。通过这个方法将
14、用户的jid信息,说话的对象,发言的内容等封装为一个标准的essagexl语句,然后交给通讯线程发送出去。图1、图2是软件运行的部分功能截图。图1群组消息传递截图图2好友列表读取显示截图5结论本系统不但实现了传统即时通讯的文本信息传递功能,还具备了拍照、传递照片、群组聊天以及查看资讯等功能。另外,针对国内 网络和用户的特点和现状,系统对网络连接进展了优化。它可以支持Sket和 两种网络连接方式,并且当客户端发现当前网络和 不支持Sket连接时,可以自动切换到 连接方式。此外,本文主要工作在Nkia、trla、SE等品牌主流机型都得到实现,整个系统目前运转正常,现注册用户已超过50万,获得了一定的社会和经济效益。参考文献1.Jabber,In.AdvantagesfJabber
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国广东省电子竞技市场发展前景预测及投资战略咨询报告
- 2023-2029年中国科技旅游行业市场发展现状及未来发展趋势预测报告
- 2025年中国血液回收机市场深度分析及投资战略咨询报告
- 2024年音乐教育市场发展前景预测及投资战略咨询报告
- 企业2024年环保措施执行报告
- 2019-2025年中国金融信息化市场全景评估及发展趋势研究预测报告
- 房产租赁合同范文的解约条件
- 2025年不锈钢管状电动卷帘门项目投资可行性研究分析报告
- 2025年中国素颜霜行业发展趋势预测及投资战略咨询报告
- 2025年时尚戒指项目投资可行性研究分析报告
- 狮子王影视鉴赏
- 一年级数学加减法口算题每日一练(25套打印版)
- 2024年甘肃省武威市、嘉峪关市、临夏州中考英语真题
- DL-T573-2021电力变压器检修导则
- 绘本《图书馆狮子》原文
- 安全使用公共WiFi网络的方法
- 2023年管理学原理考试题库附答案
- 【可行性报告】2023年电动自行车相关项目可行性研究报告
- 欧洲食品与饮料行业数据与趋势
- 放疗科室规章制度(二篇)
- 中高职贯通培养三二分段(中职阶段)新能源汽车检测与维修专业课程体系
评论
0/150
提交评论