版权所有,转载请注明出处:http://guangboo.org/2013/01/31/xmpp-introduction-2
实现
XMPP已有大量实现,包括客户端,服务端,类库等,分别依赖于各有许可证。
部署
大量公共的IM服务都使采用XMPP协议的,如Google Talk, Facebook chat, LiveJournal的LJ Talk,Nimbuzz, Ovi(诺基亚)等。很多主机托管提供商,如Dreamhost, GMX等也随传统的web和email服务之后,也为客户提供XMPP的支持。针对XMPP的托管服务也已出现,至此,域名持有者就不在直接运行独自的XMPP服务,包括WebEx,
Chrome.pl, Flosoft.biz, i-pobox.net, 和hosted.im等。
XMPP同样可用于非IM服务,包括智能网络系统,如需求响应式应用,消息中间件,及大部分手机客户端提供的SMS短信功能的替代方案等。
扩展
XMPP标准基金会或XSF(前身是Jabber软件基金会)正负责开发的XMPP扩展的开发,但任何个人,软件项目或组织也都可以对XMPP进行扩展。如,Google已经开发了大量非XSF的扩展,用于Google Talk和Google+(如Google视频群聊)等。另外一个例子是Apache Wave的federation protocol协议,也是基于XMPP开发的。
竞争
XMPP通常被视为基于SIP协议的SIMPLE的竞争对手,SIP也是即时消息和出席信息的标准协议。
XMPP多用户聊天扩展还是IRC的竞争对手,尽管与IRC比起来,前者使用还不是很广泛。
同样,XMPP的发布-订阅扩展作为高级消息队列协议,提供了很多特性。
连接其他协议
早期Jabber开源社区设计的最初目标之一,就是让用户能通过一个客户端连接多种即时消息服务器(特别是非XMPP服务器)。不仅可以通过将称为传输或网关的实体传到其他即时消息协议,还可以传到如SMS或email等协
议。与多协议客户端不同,XMPP是在服务器级别提供该访问能力,它通过与XMPP服务一同运行的特定网关来进行通讯。任何人只要提供登录这些网络的必要信息,都可以通过网关进行“注册”,并与网络内用于进行通讯,尽管他们是XMPP用户,那么,这些网关起到了客户端代理的功能(对非XMPP服务来说,网关可充当验证用户的功能)。因此,任何完全支持XMPP的客户端都可以通过网关,而不需要额外的代码,也不需要直接访问互联网,就可以访问任何网络。但是,客户端代理模式可能违反协议使用的服务条款(尽管这些服务条款在一些国家并不具有法律强制性),并且还要求用户将IM的用户名和密码发送到第三方站点(可能引起隐私和安全问题)。
另一种网关类型时服务-服务的,它使用XMPP的域间联合特性,使非XMPP服务连接其他原生的XMPP服务。这样的服务-服务的网关已有一些企业级的IM软件生产商提供,包括:
- IBM Lotus Sametime
- Microsoft Lync Server(前身为Microsoft Office Communications Server-OCS)。
开发
IETF XMPP工作小组已开发出多个RFC协议文档:RFC3920(被RFC6120取代), RFC3921(被
RFC6121取代),RFC3922, RFC3923, RFC4622, RFC4854, RFC4979和RFC6122。最重要也是使
用最广泛的规范有:
-
RFC6120:XMPP核心协议,描述客户端-服务端使用XML流进行消息交互,XML流由<presence/>,<message />,<iq />(info/query)组成,使用SASL进行验证,使用TLS进行传输加密。
- RFC6121:即时消息和出席信息的描述,这是最常见的XMPP应用。
-
RFC6122:描述了XMPP地址格式,也称为JabberID或JID,目前JID使用Stringprep(RFC3454定义)来处理超出ASCII码范围的Unicode字符,这个在将来会被IETF PRECIS工作小组的开发的技术替代。
XMPP标准基金会(XSF)基于XMPP扩展协议(XEP,以前称为Jabber改进建议---JEP),通过标准流程开发和发布XMPP的扩展。广泛应用的扩展有:
- 数据表单(Data Forms)
- 服务发现(Servce Discovery)
- 群聊(Multi-User Chat)
- 发布-订阅与个人事件协议(Publish-Subscribe and Presonal Eventing Protocol)
- XHTML格式支持(XHTML-IM)
- 文件传输(File Transfer)
- 实体能力(Entity Capabilities)
- HTTP绑定(HTTP Binding)
- 视频语音(Jingle for voice and video)
扩展阅读(英文)
参考(英文)
-
^Johansson,
Leif (April 18, 2005)."XMPP as MOM".Greater NOrdic MIddleware Symposium (GNOMIS). Oslo:
University of Stockholm.http://www.gnomis.org/presentasjoner/oslo2005/xmpp.pdf
-
^"Jabber
Inc". Cisco.com.http://www.cisco.com/web/about/ac49/ac0/ac1/ac258/JabberInc.html.
Retrieved 2012-11-24.
-
^"Jabber
Instant Messaging User Base Surpasses ICQ"(Press release).XMPP Standards Foundation. September 22, 2003.http://xmpp.org/xsf/press/2003-09-22.shtml.
Retrieved November 30, 2007.
-
^"Open
Real Time Messaging System". Tech.slashdot.org. 1999-01-04.http://tech.slashdot.org/article.pl?sid=99/01/04/1621211.
Retrieved 2012-11-24.
-
^Chatting
Up the ChefLinux JournalMarch 1, 2003 by Marcel Gagné
-
^"Jabber.org
– XMPP Server Migration". August 12, 2009.http://www.jabber.org/2009/08/xmpp-server-migration/.
Retrieved December 14, 2009.
-
^Burd, Gary (January 17, 2006)."XMPP
Federation".http://googletalk.blogspot.com/2006/01/xmpp-federation.html. Retrieved
November 30, 2007.
-
^Florian Jensen (2008-01-17)."AOL
adopting XMPP aka Jabber".Archivedfrom the original on 20 January 2008.http://florianjensen.com/2008/01/17/aol-adopting-xmpp-aka-jabber/.
Retrieved 2008-01-17.
-
^"AOL
XMPP Gateway". 2011-05-14.Archivedfrom the original on 22 May 2011.http://www.aim.com/xmpp.
Retrieved 2011-05-14.
-
^"Cisco
Announces Definitive Agreement to Acquire Jabber".http://newsroom.cisco.com/dlls/2008/corp_091908.html.
Retrieved January 2, 2010.
-
^"Facebook
Chat Now Available Everywhere".http://blog.facebook.com/blog.php?post=297991732130.
Retrieved February 11, 2010.
-
^"Facebook
Chat API".http://developers.facebook.com/docs/chat/. Retrieved November 29, 2011.
-
^Dare Obasanjo (2011-12-14)."Anyone
can build a Messenger client—with open standards access via XMPP". Windowsteamblog.com.http://windowsteamblog.com/windows_live/b/windowslive/archive/2011/12/14/anyone-can-build-a-windows-live-messenger-client-with-open-standards-access-via-xmpp.aspx.
Retrieved 2012-11-24.
-
^Janko Roettgers (2011-06-28)."Skype
adds XMPP support, IM interoperability next? — Tech News and Analysis". Gigaom.com.http://gigaom.com/2011/06/28/skype-xmpp-support/.
Retrieved 2012-11-24.
-
^RFC
6122
-
^Joe Hildebrand, Craig Kaes,
David Waite (2009-06-03)."XEP-0025: Jabber HTTP Polling". Xmpp.org.http://xmpp.org/extensions/xep-0025.html.
Retrieved 2012-11-24.
-
^abIan
Paterson, Dave Smith, Peter Saint-Andre, Jack Moffitt (2010-07-02)."XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH)". Xmpp.org.http://xmpp.org/extensions/xep-0124.html.
Retrieved 2012-11-24.
-
^"Question
FAQ #270-What is LJ Talk?". Livejournal.com. 2010-09-27.http://www.livejournal.com/support/faqbrowse.bml?faqid=270.
Retrieved 2012-11-24.
-
^"Google
Wave Federation Protocol". Google.http://www.waveprotocol.org/draft-protocol-specs/draft-protocol-spec#intro-overview.
-
^"XMPP rises to face SIMPLE standard",
Infoworld magazine, April 17, 2003XMPP rises to face SIMPLE standard
-
^"XMPP vs SIMPLE: The race for
messaging standards", Infoworld magazine, May 23, 2003Infoworld.com
-
^abXEP-0045:
Multi-User Chat
-
^abXEP-0060:
Publish-Subscribe
-
^"Lotus Sametime 7.5 Interoperates
with AIM, Google Talk", eWeek, December 6, 2006Eweek.com
-
^"Lotus ships gateway to integrate
IM with AOL, Yahoo, Google", Network World, December 6, 2006Networkworld.com
-
^"Unified Communications: Uniting
Communication Across Different Networks", Microsoft Press Release, October 1, 2009Microsoft.com
-
^XEP-0004:
Data Forms
-
^XEP-0030:
Service Discovery
-
^XEP-0163:
Personal Eventing Protocol
-
^XEP-0071:
XHTML-IM
-
^XEP-0096:
File Transfer
-
^XEP-0115:
Entity Capabilities
分享到:
相关推荐
浅显易懂地介绍xmpp与openfire开源项目的使用
XMPP协议简介
XMPP体系架构 XMPP server:其内核是一个XMPP路由器,完成基本组件间的数据包交换和路由。 功能: 1.会话管理器:负责客户端会话认证,在线状态,用户联系表等 2.数据存储器(XDB):连接数据库系统,保持用户信息、...
xmpp协议介绍PPT,详细介绍了XMPP核心协议方方面面
android的XMPP客户端
xmpp协议和xmpp扩展协议,chm格式
基于XMPP的多方通信系统研究与实现.pdf 基于XMPP的P2P即时通信系统的研究及实现.kdh 基于SIMPLE和XMPP协议的移动IM研究.pdf XMPP研究与应用.pdf XMPP协议研究及其在IM系统群组通信中的应用.pdf XMPP协议分析及客户端...
XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址...
XMPP协议分析,xmpp是即时通讯IM中比较普遍的应用
Learn about the fundamentals of XMPP and be able to work with the core functionality both server-side and in the browser Build a simple 1-to-1 chat (the "Hello World" of XMPP), explore multi-user chat...
erlang分布式 XMPP Seerlang分布式 XMPP Serverrvererlang分布式 XMPP Servererlang分布式 XMPP Server
关于XMPP协议的说明及介绍,XMPP体系结构的组成,XMPP原理等的说明
xmpp
XMPP的核心功能定义在Extensible Messaging and Presence Protocol (XMPP): Core [XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920]. 这些功能 -- 主要是 XML流, 使用 TLS和SASL,以及流的根元素之下的, , 和 <iq/> ...
xmpp api文档
xmpp客户端源代码
ios xmpp demo
QT xmpp client 仿照 psi
XMPP JINGLE Jar包 可以实现语音聊天功能