【问题标题】:What are XMPP extensions (XEPs), and how do I use them?什么是 XMPP 扩展 (XEP),如何使用它们?
【发布时间】:2013-08-12 09:57:51
【问题描述】:

我正在尝试使用OpenfireStrophe.js 制作聊天应用程序。

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

【问题讨论】:

    标签: xmpp openfire strophe


    【解决方案1】:

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

    尽管如此,它仍然值得回答!

    XMPP 代表 eXstensible Messaging and Presence Protocol。 “可扩展”部分很重要。 XMPP 基于 XML,一种支持称为 namespacing 概念的数据格式。

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

    • 客户端如何连接到服务器
    • 加密 (SSL/TLS)
    • 身份验证
    • 服务器如何相互通信以中继消息

    ...以及其他一些基本构建块。

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

    例如,也许您决定要在核心 XMPP 规范中未定义的消息中包含格式(bolditalic 等)。好吧,你可以想办法做到这一点,但除非其他人都和你一样,否则没有其他软件能够解释它(他们只会忽略他们不理解的命名空间)。

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

    你提到了Strophe.js。这是一个“低级”库,希望您自己实现所需的扩展。我认为它们中的大多数并不难,但如果您不熟悉双向协议、基本的 XML/DOM 概念等,则必须花一些时间学习。 Strophe.js 作者写了一本好书,也可以作为 XMPP Web 开发的介绍,Professional XMPP Programming with Javascript and jQuery

    XMPP: The Definitive Guide 也详细回答了这个问题,它还提供了核心协议和常见扩展的广泛概述。

    进一步在线阅读XMPP,这个StackOverflow问题可能会给出一些指点:"Good tutorials on XMPP?"

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      除了MattJ's XEP description

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

      例如,XEP-0045: Multi-User Chat 扩展在该存储库内的 Strophe MUC plugin 中实现。

      【讨论】:

        猜你喜欢
        • 2012-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多