




已阅读5页,还剩74页未读, 继续免费阅读
(计算机应用技术专业论文)基于linux环境下即时通讯软件的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南科技大学硕士研究生学位论文第l 页 摘要 自从1 9 9 6 年第一个即时通讯软件i c q 出现以来,即时通讯( i n s t a n t m e s s a g i n g ) 这种以i n t e r n e t 网络及其他有线、无线网络为基础的,以实时 方式与其他在线用户交流、传递信息的通讯方式,受到了人们的普遍欢迎。 本论文致力于研究一套以l i n u x 系统为基础的网络即时通讯系统( m y i m ) 。 目前国内外已经有各种各样的即时通讯系统,功能也越来越全面,但它 们都有个共性:不同的系统之间不能相互通讯。所以针对国内外主流网络即 时通讯软件存在的主要不足,以及l i n u x 操作系统的日益普及,本文提出了 将网络即时通讯软件引入l i n u x 操作系统桌面平台的必要性。 通过分析和研究即时通讯模型以及对当前几种流行的即时通讯协议的对 比,决定采用基于x m l 的x m p p 即时通讯协议来实现本系统。本研究完成了 m y i m 的系统分析和总体设计以及服务器和客户端的设计,实现了用户注册、 添加好友、获取好友在线状态、文本聊天、文件传输、群聊等即时通讯的基 本功能,并且通过实现与m s n 用户通讯实现了和不同协议的i m 的互连互通。 本文的主要研究工作及其技术特点为:深入分析研究x m p p 协议,应用l i n u x c 语言、m y s q l 和g t k 系统调用完成了系统软件开发。 即时通讯系统的互连互通是当前的一大趋势,而l i n u x 操作系统的普及 也推动了即时通讯系统新的发展,本系统为其他i m 软件实现提供了借鉴作 用。 关键词:即时通讯 l i n u xx m p px m l 西南科技大学硕士研究生学位论文第| | 页 a b s t r a c t s i n c ei c q ( is e e ky o u ) ,t h ef i r s t1 n s t a n tm e s s a g i n gs o f t w a r e ,w a sb o r ni n 19 9 6 ,i n s t a n tm e s s a g i n g ,t h er e a l t i m ec o m m u n i c a t i o nm e t h o dt h a ti sb a s e do n i n t e r n e ta n do t l l e rw i r e do rw i r e l e s sn e t w o r k sa n dc a ni n t e r v i e wa n dt r a n s f b r i n f o r m a t i o nw i t ho t h e r0 n l i n eu s e r s ,h a sb e e nw e l c o m e dp o p u l a r l y i nt h i st h e s i s , ar e a l t i m en e t w o r kc o m m u n i c a t i o ns y s t e m ( n a m e da s “m y i m ”) b a s e do nl i n u x i si n v e s t i g a t e d n o w a d a y sa l lk i n d so fi ms y s t e m sh a v ec o m ef o r t h ,a n dt h e i r sf u n c t i o n sa r e v e r ya l l - a r o u n di n c r e a s i n g l y ,b u tt h e yh a v eac o m m o nd i s a d v a n t a g et h a tt h e d i f f e r e n ts y s t e m sc a i l tc o m m u n i c a t ew i t ho t h e r t h e r e f o r ea c c o r d i n gt ot h e d e f i c i e n c i e so ft h ed o m e s t i ca n df o r e i g nd o m i n a t i n gi ma n da c c o r d i n gt ot h e p o p u l a r i z a t i o no fl i n u xo p e r a t i n gs y s t e mi n c r e a s i n g l y ,i ti sn e c e s s a r yt od e v e l o p ar e a l - t i m ec o m m u n i c a t i o ns o f t w a r ef o rl i n u xd e s k t o p t h r o u 曲a n a l y z i n ga n ds t u d y i n g t h ei mm o d e la n dc o m p a r i n gw i t ht h e s e v e r a lf a s h i o n a b l ei mp r o t o c o l s ,t h es y s t e mw a sd e c i d e dt o i m p l e m e n tb y a d o p t i n gt h ex m p p ( e x t e n s i b l em e s s a g i n ga n dp r e s e n c ep r o t o c 0 1 ) b a s e do n x m l t h i sr e s e a r c hf i n i s h e dm y i m ss y s t e ma n a l y s i s 蛐de n t i r ed e s i g na n dt h e d e t a i l d e s i g no fs e r v e ra n dc l i e m ,a n di r r l p l e m e n t t h eb a s i cf h n c t i o n so f r e g i s t e r i n gu s e r s ,a d d i n gf r i e n d s ,g e t t i n gf r i e n d s0 n l i n es t a t u s ,c h a t t i n gb yt e x t , t r 舳s f e r r i n gf i l e 蛐dc h a tw i t hg r o u pf r i e n d s ,a n dc o m m u n i c a t i n gw i t ho 也e ri m b a s e do nt h ed i f f e r e mp r o t o c o ls u c ha sm i c r o s o rm s nm e s s e n g e r t h em a j o r r e s e a r c ha n dc h a r a c t e r i s t i c sa r et h a td e e p l ya a l y z i n ga n ds t u d y i n gt h ep r o t o c o l o fx m pp ,a n df i n i s h i n gt h es o n w a r ed e v e l o p m e n tw i t ha n s i ccl a n g u a g e , m y s q l ,g t ks y s t e mc a l l s i mc o m m u n i c a t e sw i t hd i f 诧r e n ti ms y s t e m si sap o p u l a rt r e n d ,a n dt h e l i n u xo p e r a t i n gs y s t e m sp o p u l a r i z a t i o na l s oi n l p e lt h ei l 垤t on e wd e v e l o p i n g d i r e c t i o n t h e r e f o r et h i ss y s t e mp r o v i d e sar e f e r e n c ef o ro t h e ri ms o f t w a r e k e y w o r d s :i n s t a n tm e s s a g i n g ;l i n u x ;x m p p ;x m l 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表或撰写过的研究成果,也不包含为获得西南科技大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡 献均已在论文中作了明确的说明并表示了谢意。 签名:百志 日期:2 面- ,口 关于论文使用和授权的说明 本人完全了解西南科技大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文的复印件,允许该论文被查阅和借阅;学校可以公布该论 文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:百志 导师签名日期:彦多尼 西南科技大学硕士研究生学位论文第1 页 1 绪论 1 1 研究的背景及意义 2 0 0 6 年1 月1 7 日,中国互联网络信息中心( c n n i c ) 在北京发布第十 七次中国互联网络发展状况统计报告m 。报告显示,截止到2 0 0 5 年1 2 月 3 1 日,我国的网民总人数为1 1 1 0 0 万人,与上年同期调查结果相比,我国网 民总人数一年增加了1 7 0 0 万人,增长率为1 8 1 ,同1 9 9 7 年1 0 月第一次调 查结果6 2 万网民人数相比,现在的网民人数已是当初的1 7 9 0 倍。可见我国 网民总数发展势头良好。 同时,报告结果也显示了人们的上网用途进一步向多元化发展,不论是 在关注的信息内容还是在使用功能上,涉及范围都更深更广。在互联网服务 业务方面:浏览新闻、搜索引擎、收发邮件、即时通讯、论坛b b s 讨论组、 网上购物、网络游戏等服务业务仍然快速发展着。其中,即时通讯服务成为 人们所越来越关注的互联网应用,据统计n ,即时通讯用户每周平均最常使 用即时通讯软件的使用次数是5 6 8 次。即时通讯用户日均最常使用即时通讯 软件的使用是3 6 9 小时,即时通讯用户好友列表人数为4 7 9 6 人。 | | | | | | | | | 。 飘历一 3 1 蹙2 5 腮孙孺 16 d 一 - 掰f i 函卜 “ 一_ _ _ _ _ 一 a z c ” = : 。一_ _ _ _ _ _ _ _ _ 西南科技大学硕士研究生学位论文第2 页 时通讯用户6 2 7 2 万人,2 0 0 5 年达到8 2 6 7 万人,2 0 0 6 年将达到1 0 3 3 4 万人( 见 图1 一1 ) 。 近一随年来,即时通讯软件的发展突飞猛进。即时通讯( i n s t a n t m e s s a g i n g ,1 m ) 所拥有的实时性、跨平台性、成本低,效率高等诸多优势, 使之成为网民们最喜爱的网络沟通方式之一。据预测,按照目前的发展趋势, 到2 0 0 6 年即时通讯将成为互联网上最普及的交流方式。 由于w i n d o w s 操作系统在普通用户的市场占有绝对优势,所以当前即时 通讯软件绝大多数都是w i n d 。w s 环境的,故本课题研究的意义在于: 随着l l n u x 操作系统在普通用户中的日益普及,町n d o w s 系统下众多i m 用户在使用l i n u x 系统时急需要一种替代软件,显然这些用户不想失去与原 来i m 系统中的好友的联系,所以在设计上要考虑到与原来w i n d o w s 下的i m 实现互连互通,而目前l i n u x 系统下应用软件匮乏的现状,必然市场急需要 一款l i n u x 环境下的能与流行i m 互连互通的i m 软件,所以本软件有很大的 市场,并且对普及l j n u x 的使用也有重要的意义。 1 2 国内外即时通讯软件研究现状 进入9 0 年代以后,随着电脑和互联网的普及,标志着以“联网、易用、 时尚”为特征的后p c 时代的到来。人们利用电脑和互联网的时间越来越多, 以“社区、内容、商务”为主要特征的即时通讯,最大程度地体现了网络给 人们生括带来的变化,使得人们的沟通更加方便、快捷,真正有了天涯若比 邻的“地球村”的感觉。 即时通讯系统是一种在后p c 时代兴起的,以i n t e r n e t 网络为基础的, 允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线 状态的网络应用软件。即时通讯系统产生有着深刻的社会原因:人们都有渴 望社交,获得社会尊重、实现自我的需求,这正是即时通讯软件风行的原动 力,而物质文明的目益发达所带来副作用,又使得人们习惯与周围的人保持 距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、 行业、地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲, 即时通讯系统的如现改变了人们的沟通方式和交友文化,大大拓展了个人生 活交流的空间。 即时通讯系统软件发展的历史并不久远,1 9 9 6 年u 月四位咀色列籍的 年轻人成立的m i r a b i l is 公司推出了全世界第一款即时通讯软件i c 口,取 西南科技大学硕士研究生学位论文第3 页 自于“我在找你”( is e e ky o u ) ,到现在i c q 已经在全球即时通讯市场上占 有非常重要的地位。这款即时通讯软件支持在i n t e r n e t 上聊大、发送信息、 网址及文件等功能。i c q 最大的特点就是可以通过互联网进行信息的即时交 流,既可以结识新伙伴,也可以随时呼叫老朋友,还能即时传送文字、语音 信息和发送文件。 国内最为流行的即时通讯软件是q q 。它以良好的中文界界面和不断增强 的功能形成了一定的q q 网络文化。该软件是由腾讯公司于1 9 9 9 年2 月自主 开发的基于i n t e r n e t 的即时通讯系统。腾讯q q 目前已成为中国最主要的即 时通讯服务网络软件。作为一种即时通讯工具,q q 支持显示好友在线、即时 传送文字、语音和文件等功能。q q 还与无线寻呼、g s m 短信息、i p 电话网互 联,为用户提供互联网短信及信息增值服务。腾讯q q 开发和拓展统一、高速、 丰富的互联网应用平台、在线广告业务、移动通信业务、i s p 及i p 电话合作 业务、企业商用即时通讯服务、在线客户支持及在线呼叫业务。 m s n 是和i c q ,q q 类似的即时通讯软件,除了可以用它即时发送和接收 文字消息以外,可以使用m s nm e s s e n g e r 进行语音交谈、发送文件、召开多 人联机会议或是玩i n t e r n e t 游戏,此外还可以收到新邮件到达等事件的通知 等等。作为已融进w i n d o w sx p 操作系统的网上即时通讯平台,凭借微软公司 不遗余力的推广和软件自身优秀的性能与简便的操作,m s nm e s s e n g e r 正在 竞争激烈的市场上攻城略地,并日益深得人心,对风头正健、占尽市场先机 的i c q ,q q 等构成了巨大的威胁。 现有的即时通讯系统有很多n ,除了i c q ,m s n ,q q 外,还有雅虎通、新 浪u c 、s o h u 搜q 、网易泡泡、r e a l l i n k 等等,都在分食即时通讯市场这块蛋 糕。 1 3 本文的主要内容和组织结构 本论文通过分析和研究即时通讯模型以及对当前几种流行的即时通讯协 议的对比,决定采用基于x m l 的x m p p 即时通讯协议来实现本系统,在深入分 析研究x m p p 协议前提下,应用l i n u xc 语言、m y s q l 和g t k 系统调用完成了 系统软件开发。本研究完成了m y i m 的系统分析和总体设计以及服务器和客户 端的设计,实现了用户注册、添加好友、获取好友在线状态、文本聊天、文 件传输、群聊等即时通讯的基本功能,并且通过实现与m s n 用户通讯实现了 和不同协议的i m 的互连互通,最后对系统进行了测试,测试结果显示本i m 西南科技大学硕士研究生学位论文第4 页 系统达到了设计的要求。 本论文的组织结构如下: ( 1 ) 第1 章对论文的研究背景、研究意义以及国内外发展现状、研究内容 等做了总体性介绍。 ( 2 ) 第2 章介绍当前几种主流的即时通讯系统协议,并分析了他们之前的 优缺点,得出本系统采用x m p p 协议的原因,并重点分析x m p p 协议。 ( 3 ) 第3 章阐述l i n u x 环境编程的关键技术,为迸一步研究打下基础。 ( 4 ) 第4 章提出本系统的体系结构,说明服务器和客户端的功能,以及服 务端各组件的功能。 ( 5 ) 第5 章介绍服务器各部分的设计和实现,并以与m s n 通讯为例实现与 其他i m 的互连互通。 ( 6 ) 第6 章介绍客户端的设计和实现。 ( 7 ) 第7 章对系统进行功能测试和性能测试并得出结果。 西南科技大学硕士研究生学位论文第5 页 2 即时通讯系统概念与协议分析 2 1网络通讯方式发展历史和即时通讯软件的定义 在即时通讯系统出现之前,i n t e r n e t 先后出现:e m a i l 、b b s 、i r c 等几 种网络通讯方式。 e m a i l 是传统邮件方式在网络上的应用,在电脑前就可以完成与家人好 友的邮件传输。e m a i l 通过s m t p 发送邮件,通过p o p 3 、i m a p 等来接收邮件。 b b s ( b u l l e t i nb o a r ds y s t e m ,电子公告版系统) 是一种软件系统,在 它上面网络用户可以张贴和发布各种各样的信息,讨论各种话题。b b s 也叫 留言板,也叫论坛。与b b s 系统通信使用的应用协议通常是t e l n e t 协议,即 模拟主机登录,该协议是工作在客户机月匣务器模型下。现在可以通过w e b 浏览器访问b b s 。 i r c ( i n t e 心e tr e l “c h a t ,网络中继聊天) 是网上聊天的一种方式, 用它聊天的优点是速度快,聊天范围广且可以同时与多个人聊天。用户需要 安装i r c 客户端,通过特殊的协议( i r c 协议) 登陆一台或者多台i r c 服务器 上进行聊天。 很显然e m a i l 、b b s 都不能实时的进行通讯,用户无法知道好友是否在线, 而i r c 则可以实时通讯,但它和即时通讯系统比较起来仍然有区别,在下一 节将说明它们区别。 自从1 9 9 6 年第一个即时通讯工具i c q 出现以来,互联网上就积极展开了 研究,并成立了专门的i m p p 工作小组( i n s t a n tm e s s a g i n ga n dp r e s e n c e p r o t o c 0 1w o r k i n gg r o u p , i m p p w g ) 。 i m p p 小组广泛地展开讨论,并进行了细致的研究工作,在2 0 0 0 年提交 了两份关于即时通讯系统的请求评论( r e q u e s tf o rc o 砌e n t s ,r f c ) 草案, 获得了i n t e r n e t 任务组( i n t e r n e te n g i n e e r i n gt a s kf o r c e ,i e t f ) 的批 准,成为正式的r f c 文件。其中的一个文件“am o d e lf o rp r e s e n c ea n di n s t a n t m e s s a g i n g ”,即r f c 2 7 7 8 w ,描述了即时通讯系统的功能,正式为即时通讯系 统勾勒出了模型框架。 在r f c 2 7 7 8 中,出席信息和即时通讯系统被定义为:允许用户相互订阅 并获取彼此的状态变更信息,以便用户间互相收发短信息。 这正是即时通讯系统所提供的核心功能。为避免带入商业色彩,r f c 2 7 7 8 的使用了专门的词语来描述即时通讯系统。在本文中我们将等同使用“出席 西南科技大学硕士研究生学位论文第6 页 信息和即时通讯系统”和“即时通讯系统”两个术语。 2 2 即时通讯系统的抽象模型 r f c 2 7 7 8 同时描述了出席信息和即时通讯系统的抽象模型( a b s t r a c t m o d e l ) ,并定义了出席信息和即时通讯系统中的涉及到的实体( e n t i t y ) 、术 语( t e r m i n 0 1 0 9 y ) 、服务( s e r v i c e ) 等基本元素。 具体来说,出席信息和即时通讯系统抽象模型定义了两种独立的服务: 出席信息服务( p r e s e n c es e r v i c e ) 和即时消息服务( i n s t a n tm e s s a g e s s e r v i c e ) 。出席信息服务负责出席信息的收集和分发;即时消息服务则负责 接受和投递即时消息。 2 2 1 出席信息服务 出席信息服务模型中有两类客户( 如图2 一l 所示) :一类提供出席信息 ( p r e s e n c ei n f o r m a t i o n ) ,称为出席者( p r e s e n t i t y ) ;另类使用出席信 息,称为观察者( w a t c h e r ) 。这两类客户往往合二为一,既是出席者,同时 也是观察者,所以一般使用同一个标识号( i d e n t i f i e r ) 。根据出席信息的使 用方式,观察者又进一步分为两类:提取者( f e t c h e r ) 主动请求出席信息, 而订户( s u b s c r i b e r ) 则享受出席信息通知( n o t i f i c a t i o n ) 服务。提取者 可以通过订阅( s u b s c r i b e ) 动作取得授权,成为特定出席信息的订户。正是 订阅的概念把即时通讯系统和网络中继聊天从本质上区分开来。 出席信息服务 图2 一出席信息服务模型 f i g 2 1 m o d e io fp r e s e n c em e s s a g es e r v ic e r f c 2 7 7 8 中也没有规定出席信息的具体形式,而是使用了出席信息元组 ( p r e s e n c et u p l e ) 这一概念。只要求了一个必选项;状态( s t a t u s ) ,同 时预留了扩展机制一通讯地址项( c o m m u n i c a t i o na d d r e s s ) 和其他标记项 西南科技大学硕士研究生学位论文第7 页 ( o t h e rp r e s e n c em a r k u p ) 。出席信息元组的结构可参见图2 2 。状态可以 取诸如在线离线离开免扰等单个值,或它们的组合,但至少要提供两个基 本状态:可达( 0 p e n ) 关闭( c 1 0 s e ) 。 出席信息 出席元组 出席元组其他出席元组 联系地址项其联系地址项其 状 | 联系方式l 他 状 他 标 1 联系方式l 标 态 识 态 识 l 联系地址l 项 联系地址i 项 图2 2出席信息结构 值得注意的是,尽管图2 1 中单独标出了出席信息服务,但r f c 2 7 7 8 并 没有要求使用专用的出席信息服务器。相反,r f c 2 7 7 8 指出可以在出席者和 观察者之间直接通讯( “t h es e r v i c em a yb ei m p l e m e n t e da sd i r e c t c o m m u n i c a t i o na m o n gp r e s e n t i t ya n dw a t c h e r s ”) ,也可以采用代理转发 ( “r e d i r e c t i o na n d o rp r o x y i n g ”) ,并暗示了级联转发。 在实际的即时通讯系统中,用户的在线情况就是上述模型中的状态信息。 当用户( 出席者) 选择某种方式( 显身隐身) 登陆以后,他的在线情况就提 供给了服务器。与此同时,用户又是观察者一用户可以查看在线的所有用户, 或查找特定用户的信息( 此时用户扮演提取者的角色) ;由于是其好友的在线 情况的订户,又可以享受服务器的通知服务。事实上,添加好友就是订阅动 作。商业软件产品一般提供更多的标记信息,例如头像( i c o n ) ,昵称 ( n i c k n a m e ) 等标记项。 2 2 2 即时消息服务 即时消息服务模型中也有两类客户( 如图2 3 所示) :一类寄送即时消息 ( i n s t a n tm e s s a g e ) ,称为发送者( s e n d e r ) ;另一类接收即时消息,称为消 息箱( i n s t a n ti n b o x ) 。消息箱地址( i n s t a n ti n b o xa d d r e s s ) 是即时消息 西南科技大学硕士研究生学位论文第8 页 服务中两类客户的标识号。两种身份也往往重合,发送者和消息箱一般拥有 同一消息箱地址。 关于即时消息的定义和格式,r f c 2 7 7 8 只是模糊地要求行文短小、投递 迅速,没有规范的说明。 同出席信息服务模型一样,r f c 2 7 7 8 也没有要求独立的即时信息服务器, 而是认为既可以在发送者和消息箱之间直接投递,也可以代理转发。 即时消息服务 图2 3即时消息服务模型 f i g 2 3 m o d e io fin s t a n tm e s s a g es e r v i c e 在实际的即时通讯系统中,用户主要通过即时短消息进行交流,它和电 子邮件的区别主要在时效和体积上,它具有实时、简洁交互的特点。具体的 即时通讯系统,投递方式不尽相同,有的还同时提供多种方式,如腾讯q q 的“视频聊天”就是直接投递,而“发送消息”则是直接投递和服务器中转 的混合。 2 3 当前即时通讯系统的常用协议 i m 正在被广泛地采用,特别是在公司与它们的客户互动联接方案上。为 了解决即时通讯的标准问题,i e t f 成立了专门的工作小组,研究和开发与i m 相关的协议。 目前i m 有四种协议“,:即时信息和出席协议( i m p p ) 、空间和即时信息 协议( p r i m ) 、面向即时消息与出席利用扩展的会话初始化协议( s i m p l e ) 以 及可扩展消息处理出席协议( x m p p ) 。p r i m 与x m p p 、s i m p l e 类似,但已经不 再使用了。 2 3 1im p p i m p p ( i n s t a n tm e s s a g i n ga n dp r e s e n tp r o t o c 0 1 ) 主要定义必要的协 西南科技大学硕士研究生学位论文第9 页 议和数据格式,用来构建一个具有空间接收、发布能力的即时通讯系统。到 目前为止,这个组织已经出版了三个草案r f c ,但主要的有两个:一个是针 对站点空间和即时通讯模型的( r f c 2 7 7 8 n ,) ;另一个是针对即时通讯空间协 议需求条件的( r f c 2 7 7 ) 。r f c 2 7 7 8 是一个资料性质的草案,定义了所有 p r e s e n c e 和i m 服务的原理。r f c 2 7 7 9 定义了i 卿p 的最小需求条件。另外, 这个草案还就p r e s e n c e 服务定义了一些条款,如运行的命令、信息的格式, 以及p r e s e n c e 服务器如何把p r e s e n c e 的状态变化通知给客户。 2 3 2s i m p l e s i m p l e ( s i pi n s t a n tm e s s a g i n ga n dp r e s e n c el e v e r a g i n ge x t e n s i o n s ) 是目前为止制定的较为完善的一个。s i m p l e 和瑚p p 两个协议,都符合r f c 2 7 7 8 和r f c 2 7 7 9 。s i m p l e 计划利用s i p ( s e s s i o ni n i t a t ep r o t o c o l ,会话初始 协议) 来发送p r e s e n c e 信息。s i p 是i e t f 中为终端制定的协议。s i p 一般考 虑用在建立语音通话中,一旦连接以后,依靠如实时协议( r t p ) 来进行实际 上的语音发送。但s i p 不仅仅能被用在语音中,也可以用于视频。s i m p l e 被 定义为建立一个i m 进程的方法。s i m p l e 在2 0 0 2 年夏季得到额外的信任,目 前,微软和i b m 都致力于在它们的即时通讯系统中实现这个协议。 s i m p l e 小组致力于进程模式的操作,这将提升运行效率,使基于s i p 的 机制能够进行会议和三方电话交谈控制,也考虑到能和未来提供的许多新特 性实现兼容并提升表现能力。有了进程模式,s i m p l e 使用s i p 来建立一次进 程,再利用s d p ( 进程描述协议) 来实际传输i m 数据。 2 3 3x m p p x m p p 川( e x t e n s i b l em e s s a g i n ga n dp r e s e n c ep r o t o c 0 1 ) 是一种基于 x m l 的协议,用于近实时的消息、出席与请求响应服务。 x m p p 的基本语法语义最初是由j a b b e r n ”1 开源社区在1 9 9 9 年开发的。 2 0 0 2 年,x m p p 工作组授权开发一个j a b b e r 协议的改写本,将适用于i e t f 的即时消息( i m ) 与出席技术。2 0 0 4 年1 0 月,x m p p 被i e t f ( 互联网工程任 务组) 确定为标准。 x m p p 作为一种即时通讯的信息交换标准,具有其他i m 协议所没有的几 个优点n : ( 1 ) 开放性一x m p p 协议是免费的,开放的和公开的,并且是易于理解的, 对于x m p p 服务器,客户端和类库,它允许多种开放源代码的实现与存在; 西南科技大学硕士研究生学位论文 第10 页 ( 2 ) 可扩展性一通过使用x m l 名字空间( n a m e s p a c e ) ,任何人都可以为实 现特定功能拓展x m p p 协议,为了保持x m p p 的协作性,一般的扩展将由j a b b e r 软件基金会管理; ( 3 ) 离散性一任何人都可以运行他们自己的x m p p 服务器,它允许个人和 组织对他们的i m 系统实施控制; ( 4 ) 安全性一任何x m p p 服务器都可以独立于公共x m p p 网络运行,许 多服务器是采用s s l 实现客户端和服务器之间的交互,许多客户端支持 端对端编码的p g p 协议,采用s a s l 和会话公匙的系统也已在开发中“。 更为重要的是,多种多样的删p p 服务器都是可以自由地使用的,意思就 是说你不再需要依赖一个第三方i m 服务提供商。正是由于这些多方面的因 素,基于x m p p 的i m 系统衡量起来要好于已存在的专有i m 系统。 2 0 0 5 年,g o o g l e 通过官方宣布“”,g o 0 9 1 e 的即时通讯软件t a l k 采用 x m p p 协议,g o 0 9 1 e 加入x m p p 无疑将改变了i m 标准之争的格局。g 0 0 9 1 e 对 外表示,他们致力于实现开放式的通信,因此选择一种开放的、基于x m l 的 标准是符合逻辑的选择。 2 4x m p p 协议的分析 x m p p 协议是由开放源码组织开发的一套即时通讯协议,它其中的一个很 重要的特性就是它是以x m l 为基础的,因此x m p p 信息不仅可以是简单的文本 ( t e x t ) ,而且可以携带复杂的数据和各种格式的文件,这也就是说x m p p 不 仅可以用在人与人之间的交流,而且可以实现软件与软件或软件与人之间的 交流,x m p p 的这种功能大大扩展了即时通讯的应用范围。 x m p p 网络中每一个实体通过j a b b e r 标识符( j a b b e ri d e n t i f i e r ,j i d ) 来进行命名,j i d 分为域标识符( d o m a i ni d e n t i f i e r ) 、节点标识符( n o d e i d e n t i f i e r ) 和资源标识符( r e s o u r c ei d e n t i f i e r ) 三个组成部分。j i d 语 法采用巴科斯诺尔范式定义如下“,: j i d= n o d e ” ” d o m a i n ”r e s o u r c e d o m a i n = f q d n a d d r e s s 一1 i t e r a l f q d n =( s u b d o m a i n 1 木( ”s u b d o m a i n ) ) s u b d o m a i n= ( i n t e r n a t i o n a l i z e dd o m a i n1 a b e l ) a d d r e s s l i t e r a l = i p v 4 a d d r e s s i p v 6 a d d r e s s 基于j i d 形式的命名方法不但可以通过“u s e r d o m a i n r e s o u r c e ”的命 西南科技大学硕士研究生学位论文第1 1 页 名规则对网络中的每个具体连接实体( 如某客户端) 进行识别,而且也可以 使用“r o o d o m a i n n i c k n a m e ”的命名规则对群( 或者称房间) 进行表示。 另外基于j i d 形式的命名方法系统很容易对消息分组进行选择和发送,服务 器可以比较接收者j i d 的域标识符来确定是否需要进行路由,服务器同时能 够根据节点标识符查找并确定接收用户,依据该用户当前连接使用的资源类 型( 如移动客户端) 通过合适的方式转发该消息。当向群发送消息时,消息 会自动传送给属于该群的每一个用户。 在x j d p p 协议中所有的x m p p 交换都发生在一个x 札流的上下文,在x m p p 的x m l 流协议中,包括了三个最基本的处于顶层的元素( e 1 e m e n t ) : ( i n f o q u e r y ) 这三个元素通过属性( a t t r i b u t e ) 和名字空间( n a m e s p a c e ) 包含了更 多更复杂的数据和各种文件,这些元素、属性和名字空间一起组合成了x m p p 协议。以下对x m p p 协议中的一些重要概念作一些简介。 2 4 1 x m l 膏 一次完整的x m p p 协议会话包含了两个相互平行的x m l 数据流m ,分别是 从客户端( c l i e n t ) 到服务器端( s e r v e r ) 以及从服务器端到客户端。在客 户端与x m p p 服务器之问连接的生命期间,两个完全的x m l 文档在一个时间传 输一个片段。在连接到x m p p 服务器时,客户端初始化一个c l i e n t t o s e r v e r 的x m l 流,而服务器则初始化一个s e r v e r t o c l i e n t 的x m l 流以响应客户端, 以下是一个例子,显示了最初连接时客户端开始发送x m l 流到服务器并且服 务器发送x m l 流响应客户端,送到服务器的消息带有s e n d 前缀,客户端接收 的消息带了r e c v 前缀: s e n d : r e c v : 西南科技大学硕士研究生学位论文第12 页 2 4 2 元素 元素是x m p p 协议中三个顶层元素之一,该元素与其内的属性 构成了用户之问的聊天信息的包容体,也就是说用户之间的聊天信息内容必 然是由 元素包容在里面的,以下举例说明: w e l c o m e ! 表2 1 为 元素详细说明: 表2 1( m e s s a g e 元素 t a be 2 1eie m e n to f 元素或属性说明 b o d y e r r o r 表示里面包容的是聊天信息。 信息的目的用户的j i d 号,也可以是聊天室的j i d 号。 发送该信息的用户j i d 号。 表示聊天的类型;t y p e = c h 8 t 表示是一对一的聊天: t y p e = g r o u p c h a t 。表示是聊天室群聊;t y p e = ”e r r o r ” 表示出现了错误,具体错误信息在 属性中。 具体的聊天信息内容。 具体的错误信息。 2 4 3 元素 网络上的x m p p 用户是否在线、隐身或离线等信息由 元素内 所包含的内容提供,发送给x m p p 用户的信息内容,对方是否能即时的接收到, 也是通过该元素来确定的。 以下为一个实例: a w a y 外出吃饭 表2 2 为 元素详细说明: 醇溉 叫 卵 雌 幻【葛 西南科技大学硕士研究生学位论文第13 页 表2 2( p r e s e n c e 元素 t a be 2 2ee m e n to f 元素或属性说明 表示里面包容的是用户在线信息。 信息的目的用户的j i d 号。 发送该信息的用户儿d 号。 用户的在线状态:s h o w = ”c h a t ”表示用户处 于聊天在线状态;s h o w = ”a w a y 表示用户外 出;s h o w = x a ”,表示用户一段时间没有存 计算机前了:s h o w = ”d n d ”表示用户不希望 被打扰。 其内包含了更多的关于用户豹状态信息内 容。内容可由用户自己定义,如“外出吃 饭”,“繁忙中”等等。 2 4 4 元素 ( i n f o r m a t i o n q u e r y ,信息讯问) 元素构造了x m p p 中两个实体 ( 客户端与客户端或服务器与客户端) 之间的基本的查询对话,它允许实体 之间通过x m l 的方式进行询问以及返回查询结果。 主要用于去获取以及 设置用户的资料信息如姓名、e m a i l 、地址等,并且开发者还可自定义属于自 己的x m l 结构的i q 对话。任何符合x m p p 协议的实体之间都可以参与i q 对话。 以下为一个实例: 表2 3 为 元素详细说明: e,(n s e u s m * t e 0 o a r o r h t p t f s s 西南科技大学硕士研究生学位论文第14 页 表2 3 元素 t a b ie 2 3e i e m e n to f 元素或属性说明 1 q q u e r y t 0 f r o m t y p e 表示是一次查询对话。 表示查询会话的内容,如:r o s t e r 表示需要返回好友列 表,j a b b e r :i q :后的内容可由开发者扩展。 信息的j a b b e r 目的实体( 用户或服务器的j i d 号) 。 发送该信息的源实体( 用户或服务器的j i d 号) 。 表示查询对话的类型:t y p e = ”g e t 4 表示需要获取信息; t y p e = ”r e s u l t ”表示对应于t y p e = ”g e t ”所返回的查询结 果:t y p e = ”s e t ”表示设置用户的资料信息,通常是发送 给服务器设置自己的个人资料。 2 4 。5 其它常用的x m p p 名字空间 表2 4 中是一些x m p p 常用的标准名字空间( n a m e s p a c e ) 表2 4x m p p 常用的标准名字空间 t a be 2 4 s e v e r ai c o m m o ns t a n d a r dn a m e s d a c eo fx m p p 名字空间( n a m e s p a c e )说明 j a b b e r :i q :a u t h j a b b e r :i q :c o n f e r e n c e j a b b e r :i q :g a t e w a y j a b b e r :i q :r e g i s t e r j a b b e r :i q :r o s t e r , a b b e r :x :r o s t e r j a b b e r :i q :o o b ,j a b b e r :x :o o b j a b b e r :i q :v e r s i o n j a b b e r :i q :s e a r c h j a b b e r :x :e n c r y p t e d j a b b e r :x :e n v e l o p e j a b b e r :x :e v e n t j a b b e r :x :e x p i r e 用于登陆验证 用于会议室或聊天室 用户j a b b e r 网关 用于用户注册 用于好友名单 用于带外数据( o u to fb a n d d a t a ) 如文件传输,视频聊天等 用于取得j a b b e r 的版本号 用于查找网上的j a b b e r 用户好友 用于加密的消息 用于消息封装 用于消息事件 表示是过期
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询服务协议书样本
- 解析卷-北师大版8年级数学上册期中试题及参考答案详解(B卷)
- 2025版电子信息设备融资租赁委托合同样本
- 2025年度国内高端柴油批发与物流配送合作合同
- 2025版城镇化改造土方工程劳务分包合同范本
- 2025版住宅小区改造工程委托施工合同
- 2025版企业间融资租赁借款合同汇编
- 2025年度智能停车场设备安装与租赁合同样本
- 2025年度城市公共交通系统采购框架合同
- 2025年度典当借款与艺术品市场风险管理服务协议
- 配电网运维知识培训课件
- 普通高中生物学课程标准-(2024修订版)
- 项目质量保证措施及进度保证措施
- 打架斗殴安全教育
- 工程建设强制性条文-电力工程部分
- 档案数字化工作实施方案
- 苏教版四年级数学上册教案全册
- 短视频在互联网媒体与在线游戏行业的应用研究
- 中医体重管理
- 家长会校长讲座
- 中国脑小血管病诊治指南2023版
评论
0/150
提交评论