XMPP 概述

XMPP 刘宇帅 6年前 阅读量: 2703

原文地址: https://xmpp.org/about/technology-overview

可扩展与表示协议(XMPP,全称Extensible Message and Presence Protocol)是一系列开源技术包括即时通讯、表示、群聊、语言和视频通讯、协作、轻量级插件、内容聚合和广义的XML数据路由等。
XMPP是由Jabber开源社区提供的一个开源、分布式的及时通讯服务的一个可行方案。XMPP有以下几个优点:

  • 开放 - XMPP 协议是自由、开放、公开并易于理解的。而且在客户端、服务端、服务端组件和源码库等方面都有多种实现。
  • 标准 - 互联网工程工作小组(IETF)已经将核心XML流协议列为标准的即时通讯和表示技术。而XMPP的技术规范在2004年被发表在RFC3920RFC3921中,并且XMPP标准基金会也陆续发表了许多XMPP扩展协议。2011年的时候修改了XMPP的核心协议,并生成了最新的规范包括RFC6120RFC 6121RFC 7622
  • 证实可用 - Jabber/XMPP 协议一开始是被Jeremie开发的并且现在已经非常稳定。现在有数以百计的开发者再为这些技术做贡献、数以万计的服务器运行在因特网上并且有数以百万计的人们在使用像Google Talk这样基于XMPP的即时通讯服务。
  • 分布式的 - XMPP的网络架构和email很像,任何个人和组织都可以假设XMPP服务器并体验即时通讯服务。
  • 安全的 - 任何XMPP服务都可以独立与公开网络独立部署(例如公司内网),并且XMPP内置支持了SASL和TLS来保证安全性。另外XMPP开发者社区正在积极的推进端到端的加密以提高数据安全性。
  • 可扩展 - 基于XML的强大能力,任何人可以在核心协议的基础上开发自定义功能。为了保证互操作性,常见的扩展被发布在XMPP基金会协议系列里,但是这些并没有要求各组织必须发表他们自己维护的私有扩展。
  • 灵活的 - XMPP不仅被应用在即时通讯上,还包括网络管理、内容聚合、协作工具、文件共享、有些、远程系统监控、网络服务、轻量级中间件、云计算等等。
  • 多样性 - 很多公司和开源组织用XMPP构建和部署即时通讯服务,你永远不会受到限制。

本页介绍了XMPP的各方面技术,包括规范地址、实现、入门指南和 special-purpose discussion venues。

XMPP技术关键:

  • Core - XMPP技术的核心技术XML流的介绍
  • Jingle - SIP-compatible multimedia signalling for voice, video, file transfer, and other applications
  • 群聊 - 灵活的、群聊
  • 订阅 - 可订阅聚合数据和各种丰富的数据
  • BOSH - 基于HTTP实现的XMPP

    Core

    XMPP核心是基于网络的XML流技术。XMPP协议首次出现在1999年的Jabber开源社区,最初被设计的目的是提供一个开放、安全、分布式的服务用于代替像ICQ、AIM和MSN。互联网工程工作小组在2004年将协议的核心列为XMPP标准。核心技术包括:

  • 基本的XML流层
  • 加密的数据通讯
  • 完整的utf8的Unicode支持,包括完整的国际化地址
  • 内置的网络可用性信息
  • 双方授权
  • 及时的联系人列表

    规范

    XMPP技术的核心包含在互联网工程工作小组发布的两个标准协议中:

  • RFC 6120: XMPP Core
  • RFC 6121:XMPP IM
  • RFC 7622:XMPP Address Format

XMPP的第一份协议(RFC 3920RFC 3921)是互联网工程工作小组的XMPP工作组在2004年制定的。2011年的时候又重新修订了协议,就生成当前的新的协议规范。

实现

有很多XMPP核心协议的实现。具体内容可以一下页面查看:

Jingle

本质上,Jingle给通讯协议提供了创建、管理和关闭多媒体会话的方法。会话支持很多数据类型(例如 语言聊天、视频聊天和文件传输等)和各种协议的传输协议(例如TCP,UDP,RTP甚至XMPP本身)。在XMPP中媒体直接使用点对点或则媒体传递建立会话连接。Jingle为应用类型和数据传输提供了可插拔的框架。在语音和视频通讯中,Jingle使用即时传输协议并支持已有的多媒体技术例如会话初始化协议(SIP-Session Initiation Protocol)。 Furthermore, the semantics of Jingle signalling was designed to be consistent with both SIP and the Session Description Protocol (SDP), thus making it straightforward to provide signalling gateways between XMPP networks and SIP networks.

规范

Jingle有多个协议规范:

相关推荐

    提示

    功能待开通!


    暂无评论~