2024年3月18日发(作者:)

竭诚为您提供优质文档/双击可除

qq是xmpp协议吗

篇一:xmpp协议实现原理介绍

xmpp协议实现原理介绍

本文介绍xmpp协议原理及相关信息。xmpp协议简介

xmpp(extensiblemessageingandpresenceprotocol:可扩

展消息与存在协议)是目前主流的四种im(im:

instantmessaging,即时消息)协议之一,其他三种分别为:

即时信息和空间协议(impp)、空间和即时信息协议(pRim)、

针对即时通讯和空间平衡扩充的进程开始协议sip(simple)。

在这四种协议中,xmpp是最灵活的。xmpp是一种基于

xml的协议,它继承了在xml环境中灵活的发展性。因此,

基于xmpp的应用具有超强的可扩展性。经过扩展以后的xmpp

可以通过发送扩展的信息来处理用户的需求,以及在xmpp

的顶端建立如内容发布系统和基于地址的服务等应用程序。

而且,xmpp包含了针对服务器端的软件协议,使之能与另一

个进行通话,这使得开发者更容易建立客户应用程序或给一

1 15

个配好系统添加功能。

1.什么是xmpp?xmpp的前身是jabber,一个开源形式

组织产生的网络即时通信协议。xmpp目前被ietF国际标准

组织完成了标准化工作。标准化的核心结果分为两部分;核

心的xml流传输协议基于xml流传输的即时通讯扩展应用

xmpp的核心xml流传输协议的定义使得xmpp能够在一个比

以往网络通信协议更规范的平台上。借助于xml易于解析和

阅读的特性,使得xmpp的协议能够非常漂亮。xmpp的即时

通讯扩展应用部分是根据ietF在这之前对即时通讯的一个

抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸

如aim,qq等有功能完整,完善等先进性。

的基本网络结构是怎样的?xmpp中定义了三个

角色,客户端,服务器,网关。通信能够在这三者的任意两

个之间双向发生。服务器同时承担了客户端信息记录,连接

管理和信息的路由功能。网关承担着与异构即时通信系统的

互联互通,异构系统可以包括sms(短信),msn,icq等。

基本的网络形式是单客户端通过tcp/ip连接到单服务器,

然后在之上传输xml。

通过tcp传什么了?传输的是与即时通讯相关的

指令。在以前这些命令要么用2进制的形式发送(比如qq),

要么用纯文本指令加空格加参数加换行苻的方式发送(比如

msn)。而xmpp传输的即时通讯指令的逻辑与以往相仿,只

2 15

是协议的形式变成了xml格式的纯文本。这不但使得解析容

易了,人也容易阅读了,方便了开发和查错。而xmpp的核

心部分就是一个在网络上分片断发送xml的流协议。这个流

协议是xmpp的即时通讯指令的传递基础,也是一个非常重

要的可以被进一步利用的网络基础协议。所以可

以说,xmpp用tcp传的是xml流。

xmpp协议工作原理:

协议地址格式:

消息格式:

篇二:基于xmpp协议的手机多方多端即时通讯方案

一、开发背景

1、国际背景

随着internet技术的高速发展,即时通信已经成为一

种广泛使用的通信方式。1996年mirabilis公司推出了世界

上第一个即时通信系统icq,不到10年间,即时通信

(instantmessaging,简称im)以发展成为了最流行的网络

应用之一。特别是近几年的迅速发展,即时通信的功能日益

丰富,它不再是个单纯的聊天工具,它已经发展成集交流、

资讯、娱乐、音乐、电视、游戏、电子商务等为一体的综合

化信息平台。

2、国内背景

目前国内外及时通信软件im(instantmessenger)形势

3 15

风起云涌,可谓战况空前,im作为继email和web之后最主

要的互联网基础应用之一,为商家必争之地。国内的形势由

于qq的垄断性优势明显,表面稍显平静,实则暗流涌动。

目前来看,胖企鹅公司以压倒性优势占据了国内im市场近

八成份额,并且紧紧抓住低端市场,用户数量庞大,盈利丰

厚。其他的im微软msn(wlm)、网易popo、新浪uc、tomskype、

googlegtalk等占有率较为惨烈,还有雅虎即时通、aim、icq

以及传闻中的baiduim和搜狐搜q以及一些目前并不出名的

如校内网的校内通,lava-lava等等等等,凡在国内叫得上

号的叫不上号的互联网企业,几乎没有不推im的,甚至连

中国移动都力推飞信,希望分得一杯羹。然而这些即时通讯

不能实现互联互通,限制了用户的扩展。

3、为什么选择xmpp协议

虽然现在即时通信软件有很多,但是它们之间不能互联

互通也阻碍了及时通信用户的继续扩展。因此,在现阶段的

各种即使通信服务,没有统一的标准,无法实现互联互通的

局面下,而xmpp(extensiblemessageandpresenceprotocol)

协议的出现,实现了整个及时通信服务协议的互通。有了这

个协议之后,使用任何一个组织或者个人提供的即使通信服

务,都能够无障碍的与其他的及时通信服务的用户进行交流。

例如google公司20xx年推出的googletalk就是一款基于

xmpp协议的即使通信软件。

4 15

目前im即时通信有四种协议:

1.即时信息和空间协议(impp)

2.空间和即时信息协议(pRim)

3.针对即时通讯和空间平衡扩充的进程开始协议sip

协议:该协议的前身是jabber,我们采取xmpp

协议主来实现im主要是考虑xmpp协议是以xml为基础的,

它继承了在xml环境中灵活的发展性。这表明xmpp是可扩

展的,所以xmpp信息不仅可以是简单的文本,而且可以携

带复杂的数据和各种格式的文件,也就是说xmpp协议不仅

可以用在人与人之间的交流,而且可以实现软件与软件或软

件与人之间的交流,目前支持xmpp协议的即时通讯工具有

gtalk、Facebookim、twitter、网易popo等等通讯工具,

具有非常好的发展情景。

正如任何事物都有其自身的发展规律一样,技术和产品

的进步也有其自身的规律。从萌芽到混乱最终标准化,这是

互联网产品的基本规律。im跟其实发展自email,跟email

有着很多共同点。让我们来对比一下email目前的情况,或

许会有些启示。email现在已经被广泛应用,谁都不能质疑

其互联网第二应用的地位(第一应用是web)。email之所以

能广泛地被应用最关键的原因应该是email有一套开放标准

的协议规范(包括smtp、pop、imap等),任何人都可以基

于这些协议规范开放自己的email产品,不管是email服务

5 15

器也好,email收发客户端也罢还是现在颇为流行的web形

式的email界面,它们都是基于同一套标准。在这套标准的

框架下,各个email相关厂商都各自占据产业链的相应位置,

相互合作相互竞争,这才是一个百花齐放的健康竞争环境,

而且这种健康竞争最终受益者还是广大用户。

xmpp()由jabber软件基金会开发,最早

在jabber上实现。jabber项目由jeremiemiller在1998年

开始的一个免费、开源的项目,用于提供给msn、yahoo!的

im服务。由于xmpp是一种基于xml架构的开放式协议,在

im通讯中被广泛采用。

xmpp的基础部分已经在20xx-20xx年得到了互联网工程

任务组(ietF)的批准,这意味着xmpp在将来就像我们认为

理所当然的internet协议tcp/ip、http、Ftp、smtp、pop

一样成为internet标准;这意味着以后我们就像使用web、

使用email和使用Ftp一样开放地使用im。甚至若干年后人

们会理所当然地认为163的邮箱可以给hotmail发邮件一样,

qq用户也可以添加gtalk用户,人们会逐渐忘却当年军阀割

据纷乱的历史。这是一种革命性的进步!不支持xmpp的im

将会像ibm的token-Ring一样孤芳自赏或者像decnet协议

一样被人遗忘。遥想当年decnet和ibmtoken-Ring也是多

么意气风发羽扇纶巾啊!

在xmpp被批准之前,世界上已经存在了数十种支持xmpp

6 15

的服务器端和客户端以及数百万用户。嗅觉灵敏的google

作为开放源代码社区和开放标准的最大受益者,第一时间感

受到了这种趋势,所以花重金将gaim的作者挖去google,

于是就有了基于xmpp的gtalk。

开放的标准协议会导致产品的竞争更为健康和良性,整

个产业链更为完善。当然产品之间的竞争唯一的趋势就是同

质化,产品发展到后期比拼的只有服务。这一点在传统产业

已经被完全验证,互联网产业也不能逃脱。至于到时用户是

选gtalk呢还是选popo呢,就像用户现在选gmail还是163

的邮箱一样,可以各有所好。不过im在扩展功能以及增值

服务上还有非常大的竞争余地。

二、xmpp协议介绍

1、xmpp协议概述

xmpp(extensiblemessagingandpresenceprotocol,前

称jabber[1])是一种以xml为基础的开放式实时通信协议,

是经由互联网工程工作小组(ietF)通过的互联网标准。

xmpp是一种基于xml的协议,它继承了在xml环境中灵

活的发展性。因此,基于xmpp的应用具有超强的可扩展性。

经过扩展以后的xmpp可以通过发送扩展的信息来处理用户

的需求,以及在xmpp的顶端建立如内容发布系统和基于地

址的服务等应用程序。而且,xmpp包含了针对服务器端的软

件协议,使之能与另一个进行通话,这使得开发者更容易建

7 15

立客户应用程序或给一个配好系统添加功能。

可扩展消息处理现场协议

(extensiblemessagingandpresenceprotocol,xmpp)是一种

基于可扩展标记语言(extensiblemarkuplanguage,xml)的

近端串流式即时通信协议。它将现场和上下文敏感信息标记

嵌入到xml结构化数据中,使得人与人之间、应用系统之间

以及人与应用系统之间能即时相互通信。xmpp协议已被批准

为互联网即时通信协议标准。

2、xmpp协议内容

xmpp中定义了三个角色,客户端,服务器,网关。通信

能够在这三者的任意两个之间双向发生。服务器同时承担了

客户端信息记录,连接管理和信息的路由功能。网关承担着

与异构即时通信系统的互联互通,异构系统可以包括sms(短

信),msn,icq等。基本的网络形式是单客户端通过tcp/ip

连接到单服务器,然后在之上传输xml。

3、xmpp协议优点

开放—xmpp协议是自由、开放、公开的,并且易于了解。

而且在客户端、服务器、组件、源码库等方面,都已经各自

有多种实现。

标准—互联网工程工作小组(ietF)已经将jabber的

核心xml流协议以xmpp之名,正式列为认可的实时通信及

presence技术。而xmpp的技术规格已被定义在RFc3920及

8 15