什么是XMPP?是一个开放协议

2020.05.20 -

   

可扩展消息和存在协议XMPP)是一种通信协议为面向消息的中间件基于XML(可扩展标记语言)。它使任何两个或更多网络实体之间的结构化但可扩展的数据实时交换。该协议也已用于发布订阅系统,用于VoIP的信令,视频,文件传输,游戏,诸如智能电网的物联网(IoT)应用程序以及社交网络服务。

与大多数即时消息协议不同,XMPP是在开放标准中定义的,并使用开发和应用程序的开放系统方法,通过该方法,任何人都可以实现XMPP服务并与其他组织的实现进行互操作。

由于XMPP是一种开放协议,因此可以使用任何软件许可证来开发实现,并且许多服务器,客户端和库实现均以自由和开源软件的形式分发。还存在许多免费软件和商业软件实现。

XMPP

XMPP的优点

分权化

XMPP网络的架构类似于电子邮件。任何人都可以运行自己的XMPP服务器,并且没有中央主服务器。

开放标准

互联网工程任务组(Internet Engineering Task Force)以 XMPP的名义将XMPP正式批准为批准的即时消息传递和状态技术(最新规范为RFC 6120和RFC 6121)。实施这些规范不需要特许权使用费或授予的许可。

历史悠久

XMPP技术自1999年以来一直在使用。XMPP标准的许多实现都适用于客户端,服务器,组件和代码库。

安全

XMPP服务器可以隔离(例如,在公司的Intranet上),并且安全认证(SASL)和点对点加密(TLS)已内置在核心XMPP规范以及多端到多结束加密(OMEMO)。

灵活性

可以在XMPP之上构建自定义功能。IM之外的XMPP应用程序包括聊天室,网络管理,内容联合,协作工具,文件共享,游戏,远程系统控制和监视,地理位置,中间件和云计算,VoIP和身份服务。

缺点

不支持服务质量(QoS)

确保消息的传递必须建立在XMPP层的顶部。提出了两个XEP来解决此问题,XEP-0184消息传递回执是标准草案,XEP-0333聊天标记是实验性的。

基于文本的交流

由于XML是基于文本的,因此与纯二进制解决方案相比,常规XMPP具有更高的网络开销。实验性XEP-0322:有效XML交换(EXI)格式已解决了此问题,其中XML以非常有效的二进制方式(尤其是在模式通知模式下)进行序列化。

带内二进制数据传输受到限制

二进制数据必须先经过base64编码,然后才能进行带内传输。因此,二进制数据(例如,任何显著量文件传输),最好传送出的带外,使用带内消息来协调。最好的示例是Jingle XMPP扩展协议XEP-0166

本站文章禁止转载,违者必究
阅 171
0

可扩展消息和存在协议(XMPP)是一种通信协议为面向消息的中间件基于XML(可扩展标记语言)。它使任何两个或更 […]

湘公网安备 43011102001693号

    湘ICP备19003021号-1