XMPP概述

来源:互联网 发布:淘宝评价服务怎么说 编辑:程序博客网 时间:2024/05/19 06:51

XMPP技术概述

XMPP(可扩展消息和存在协议)是一系列开源技术的集合,用于即时消息、在线情况探测、多方聊天、语音和视频通话、协作、轻量型中间件、内容聚合、XML数据的广义路由等领域。 

XMPP一开始是由Jabber开源团体开发的,目的是为了提供一个开放的、安全的、无垃圾的、分散式的方案,作为封闭的即时消息服务的替换。

XMPP协议的优点

XMPP协议有许多优点:

  • 开放 – XMPP协议是免费的、开放的、公共的,并且易于理解。此外,有很多XMPP客户端、XMPP服务器、XMPP服务器组件、XMPP开发库的开源实现。
  • 标准 – IETE已经正式把XMPP核心的XML流协议作为即时消息和存在技术的标准。XMPP规范于2004年被发布为RFC3920和RFC3921,XMPP标准基金会在那之后持续发布了许多的XEP。在2011年,之前发布的RFC被重新修订,形成了最新的规范说明(RFC6120,RFC6121和RFC6122)。
  • 久经考验 – 第一版Jabber/XMPP技术是由JeremieMiller在1998年开发完成的,现在已经相当稳定了;数百名开发者一直在研究这些技术,今天的互联网上运行着数以万计的XMPP服务器,数百万人正通过像Google Talk这样的公共服务和世界范围内由组织部署的XMPP使用XMPP即时消息。
  • 分散化 –XMPP网络的结构类似于email;这样,任何人都可以运行他们自己的XMPP服务器,使得个人和组织可以控制他们的沟通体验。
  • 安全 – 任何XMPP服务器可以独立于公共网络(例如,部署在公司的企业内部网),SASL和TLS被内置于核心XMPP规范,使XMPP具有强大的安全性,而且XMPP网络几乎是无垃圾的。此外,XMPP开发商正积极开发端到端的加密方案,进一步提高安全性。
  • 可扩展 – XMPP基于XML,具有强大的可扩展性,任何人都可以在核心协议的基础上建立自定义功能。为了维护互操作性,常用的扩展被发布为XEP系列,但是这些规范不是必须的,如果特别需要,组织可以维护他们自己的私有扩展。
  • 弹性 – XMPP应用程序不只IM,还包括了网络管理、内容聚合、协作工具、文件共享、游戏、远程系统监控、web服务、轻量中间件、云计算等等。
  • 多样化 – 范围广泛的公司组织和开源项目使用XMPP来创建和部署实时应用和服务。当你使用XMPP技术时,绝不会感觉被“限制住”。

各种XMPP技术

XMPP核心 – XMPP核心是一个通过网络流传输XML的技术。包括:

  1. 基本的XML流层。
  2. 使用TLS的通道加密技术。
  3. 使用UTF-8,完全支持Unicode,包括完全国际化的地址。
  4. 内建关于网络可用性的信息(”presence”)
  5. 用于双向认证的出席信息订阅
  6.  存在功能的联系人列表(”花名册”)

BOSH -- Bidirectional-streams Over Synchronous HTTP, 一种基于HTTP协议的双向通信技术。BOSH模拟了TCP中很多熟悉的运输原语。如今,BOSH已经被用作Jabber/XMPP客户端和服务器之间主要的流传输

Jingle – 兼容SIP的多媒体信令协议,用于音/视频、文件传输和其它应用。

Multi-User Chat – 灵活的多方通信技术

PubSub – 一个用于通用发布-订阅功能的协议扩展。