什么是XMPP扩展(XEP),如何使用它们?

什么是XMPP扩展(XEP),如何使用它们?,xmpp,openfire,strophe,Xmpp,Openfire,Strophe,我正在尝试使用和制作聊天应用程序 我总是阅读有关XEP等的文章,它总是将我重定向到,我甚至不知道如何使用这些扩展。这似乎是一个愚蠢的问题,但我可以接受,因为我是新手,但我们如何使用扩展?任何提出这个问题的人通常都应该从一个XMPP库开始,该库已经实现了他们所需要的一切 尽管如此,它仍然值得一个答案 XMPP代表可扩展的消息和状态协议。“可扩展”部分很重要。XMPP基于XML,这是一种支持名称空间概念的数据格式 通过名称空间,您可以向XMPP中添加未在中定义的位。这一点很重要,因为XMPP规范故意

我正在尝试使用和制作聊天应用程序


我总是阅读有关XEP等的文章,它总是将我重定向到,我甚至不知道如何使用这些扩展。这似乎是一个愚蠢的问题,但我可以接受,因为我是新手,但我们如何使用扩展?

任何提出这个问题的人通常都应该从一个XMPP库开始,该库已经实现了他们所需要的一切

尽管如此,它仍然值得一个答案

XMPP代表可扩展的消息和状态协议。“可扩展”部分很重要。XMPP基于XML,这是一种支持名称空间概念的数据格式

通过名称空间,您可以向XMPP中添加未在中定义的位。这一点很重要,因为XMPP规范故意只描述了一组核心内容,如:

  • 客户端如何连接到服务器
  • 加密(SSL/TLS)
  • 认证
  • 服务器如何相互通信以转发消息
…和其他一些基本构件

一旦你实现了这些东西,你就有了一个XMPP客户端,可以发送任何你喜欢的数据!但这也是一个问题

例如,您可能决定在核心XMPP规范中未定义的消息(粗体、斜体等)中包含格式。好吧,你可以想出一种方法来做到这一点,但是除非其他人都像你一样做,否则没有其他软件能够解释它(他们只会忽略他们不理解的名称空间)

因此XMPP标准基金会(XSF)发布了一系列额外的文档,称为XMPP增强建议(XEPs)。一般来说,每个XEP都描述一个特定的活动(从消息格式到文件传输、多用户聊天等等),并且它们为每个人提供了一个标准格式来用于该活动

你提到过。这是一个“低级”库,希望您自己实现所需的扩展。我不认为它们大部分都很难,但是如果你不熟悉双向协议、基本的XML/DOM概念等等,你就得花一些时间学习。js作者写了一本好书,也可以作为XMPP web开发的介绍

中也对这个问题进行了一些详细的回答,其中还提供了核心协议和常见扩展的广泛概述

对于XMPP的进一步在线阅读,这个StackOverflow问题可能会给出一些提示:

希望这有帮助

除了:

如果您正在使用Strophe,并且需要使用XEP中指定的功能,请查看,看看是否已经为您实现了该功能

例如,该扩展是在该存储库中的中实现的