XMPP 协议
XMPP 是 Extensible Messaging Presence Protocol 的缩写形式。它是一种通过网络流式传输 XML 元素的协议,以便接近实时地交换消息和存在信息。该协议主要由 WhatsApp 等即时消息应用程序使用。
让我们深入研究单词XMPP的每个字符:
- X:表示可扩展。 XMPP 是一个开源项目,可以根据需要进行更改或扩展。
- M : XMPP 是为实时发送消息而设计的。与其他协议相比,它具有非常高效的推送机制。
- P :它决定了您是在线/离线/忙碌。它表示状态。
- P : XMPP 是一种协议,即一组允许系统相互通信的标准。
这些是 XMPP 满足的任何 Instant Messenger 的基本要求:
- 与其他用户发送和接收消息。
- 检查并分享在线状态
- 管理与其他用户的订阅。
- 管理联系人列表
- 阻止与特定用户的通信(接收消息、共享存在状态等)。
其他 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 维基