XMPP 是一种基于 XML 的开放即时通讯协议,前身为 Jabber,由 IETF 标准化。它采用去中心化的联邦架构,支持消息、在线状态与扩展协议,曾被 Google Talk、WhatsApp 等大量通讯产品采用或借鉴。

| 中文名 | 可扩展消息与出席协议 |
| 前身 | Jabber |
| 标准文档 | RFC 6120 / RFC 6121 |
| 默认端口 | 5222(客户端) |
| 数据格式 | XML |
| 架构 | 去中心化联邦 |
XMPP(Extensible Messaging and Presence Protocol,可扩展消息与出席协议)是一种基于 XML 的开放式即时通讯协议,起源于 1999 年 Jeremie Miller 发起的 Jabber 项目,2004 年由 IETF 以 RFC 3920、RFC 3921(后更新为 RFC 6120、RFC 6121)正式标准化,用于在互联网上实时交换消息与在线状态。
与微信、QQ 等封闭体系不同,XMPP 采用类似电子邮件的联邦(Federation)架构:任何人都可以架设自己的服务器,不同服务器之间可以互联互通。用户地址称为 JID,形如用户名加服务器域名,天然去中心化。协议核心只定义消息、出席(Presence)和 IQ 查询三类 XML 节(Stanza),其余功能全部通过 XEP 扩展文档实现,故称可扩展。
历史上 Google Talk、Facebook 早期聊天、WhatsApp 底层都采用或改造过 XMPP。今天它仍活跃于自建企业 IM、物联网消息通道、网络游戏聊天与客服系统等场景,常见服务器实现有 ejabberd、Openfire、Prosody,客户端有 Conversations、Gajim 等。
问:XMPP 和 MQTT 有什么区别?答:两者都可做消息推送,但 XMPP 基于 XML、面向人与人的即时通讯,语义丰富;MQTT 基于二进制发布订阅模型,报文极轻,更适合低功耗物联网设备。
问:XMPP 过时了吗?答:大型消费级 IM 多已转向私有协议,但 XMPP 在自托管通讯、隐私敏感场景和标准化互通领域仍在持续演进,OMEMO 加密等新扩展让它保持活力。
问:XML 是否太笨重?答:相比二进制协议确实冗长,可通过流压缩缓解;这也是部分厂商改用 Protobuf 等私有编码的原因。

| 中文名 | 可扩展消息与出席协议 |
| 前身 | Jabber |
| 标准文档 | RFC 6120 / RFC 6121 |
| 默认端口 | 5222(客户端) |
| 数据格式 | XML |
| 架构 | 去中心化联邦 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧