📜  XMPP 协议

📅  最后修改于: 2022-05-13 01:56:30.289000             🧑  作者: Mango

XMPP 协议

XMPP 是 Extensible Messaging Presence Protocol 的缩写形式。它是一种通过网络流式传输 XML 元素的协议,以便接近实时地交换消息和存在信息。该协议主要由 WhatsApp 等即时消息应用程序使用。

让我们深入研究单词XMPP的每个字符:

  • X:表示可扩展。 XMPP 是一个开源项目,可以根据需要进行更改或扩展。
  • M : XMPP 是为实时发送消息而设计的。与其他协议相比,它具有非常高效的推送机制。
  • P :它决定了您是在线/离线/忙碌。它表示状态。
  • P : XMPP 是一种协议,即一组允许系统相互通信的标准。

这些是 XMPP 满足的任何 Instant Messenger 的基本要求:

  1. 与其他用户发送和接收消息。
  2. 检查并分享在线状态
  3. 管理与其他用户的订阅。
  4. 管理联系人列表
  5. 阻止与特定用户的通信(接收消息、共享存在状态等)。

其他 XMPP 功能:

去中心化——
XMPP 基于客户端-服务器架构,即客户端不直接通信,它们在服务器的帮助下作为中介进行通信。它是分散的,意味着没有像电子邮件一样的集中式 XMPP 服务器,任何人都可以运行自己的 XMPP 服务器。

每个 XMPP 客户端都由 JID(Jabber ID)标识。

#JID
 {
   user,
   server,
   resource
}

例如,我是一个whatsApp用户,我是通过我的手机号码来识别的,所以

user = "8767898790"
   server = "whatsapp.com"
   resource = "mobile"

   JID : "8767898790@whatsapp.com/mobile"

如果应用程序支持移动以及桌面或 Web 应用程序,则使用资源,因此如果即时消息应用程序仅支持单一类型的资源,则它可以是可选的。

XMPP 实施 –

XMPP 的原始协议是传输控制协议,在长期 TCP 连接上使用开放式 XML 流。

在某些情况下,有受限制的防火墙,XMPP(端口 5222)被阻止,因此它不能用于受限制防火墙后面的 Web 应用程序和用户,为了克服这个问题,XMPP 社区还开发了 HTTP 传输。
由于客户端使用 HTTP,大多数防火墙允许客户端毫无问题地获取和发布消息。因此,在 XMPP 使用的 TCP 端口被阻塞的情况下,服务器可以在正常的 HTTP 端口上进行侦听,流量应该没有问题通过。

参考:
xmpp.org
XMPP 维基