【问题标题】:Good tutorials on XMPP? [closed]关于 XMPP 的好教程? [关闭]
【发布时间】:2011-03-06 18:32:11
【问题描述】:

一直在看一些开源的XMPP服务器,对官方页面http://xmpp.org/比较熟悉。但到目前为止,我还没有在“可扩展消息传递和存在协议 (XMPP) 是一种用于实时通信的开放技术”和 XEP 规范列表之间找到任何东西。例如解释基础知识和术语的文章 - 节、智商、存在等。即使是 Wikipedia 页面也忽略了这一点,毫不奇怪,开源项目假设你在开始深入研究代码之前就知道这些东西。

有没有关于这方面的一套好的(半)官方教程?我是否需要寻找 Jabber 资源而不是 XMPP?

除此之外,我希望看到用例和流程的图表,而不仅仅是枯燥的协议文本。我知道有关于 XMPP 的书籍,但通常书中的任何内容也可以以某种形式在线获得。

【问题讨论】:

    标签: xmpp


    【解决方案1】:

    【讨论】:

    【解决方案2】:

    以下是我开始 XMPP 开发的原因:

    • 一本好书:XMPP The Definivie Guide
    • 成熟的 Java API。我选择了 Ignite Realtime 的 Smack 库,并使用 groovy 语言和一些小脚本来学习基础知识。

    后来我为 OpenFire XMPP 服务器开发了一个插件。他们的网站上也有一些教程和论坛。我认为 smack 和 openfire api 都很容易学习。

    如果您不熟悉 java:本书参考了 SkeekXMPP Python 库,并使用它创建了一些示例(echo bot,...)。

    【讨论】:

    • 很好。我建议你看看这本书。由于 API 类大多以 xmpp 概念/节命名,因此一旦您了解了基本术语,就会有一个很好的起点。
    • 另外,jack moffit 的《Professional XMPP Programming with JavaScript and jQuery》一书非常出色,比上面提到的(O'Reilly)要好。 professionalxmpp.com
    • 在阅读 XMPP The Definivie 指南(主要是示例代码)时,准备好看到大量的拼写错误和错误
    • XMPP The Definitive Guide 很棒而且很详细,可能有点过时了,但我自己开了个好头。
    【解决方案3】:

    正如其他人所说,规格是一个很好的介绍。确实,它们本质上是技术性的,而且措辞准确——但它们确实是我见过的任何协议的最佳规范,尤其是最新的 RFC(61206121),它们阐明了一些原件中的灰色区域。

    例如你提到想知道一个节的定义,它在6120 section 8中有解释(用例子)。

    如果您对如何使规范更清晰有任何反馈,请在XMPP mailing list 上说,所有反馈都会在规范的下一个草案中考虑。

    如果规格对你来说真的太多了(我很欣赏有些人比我喜欢更多的图片),请考虑the book(无论是纸质形式还是数字形式) - 它的设计完全是为了简单地介绍两者的核心规范和最常见的扩展,由帮助开发和实施它们的人编写。

    【讨论】:

    • 天哪,仅 RFC 6120 就有 200 多页。我认为他们应该保持它简单............
    • 简单并不意味着简短的规范。我自己发现 XMPP 非常简单。尤其是 XMPP 的模块化,即 XMPP Core、XMPP IM 和 XEP 之间的分离,使该协议对我来说很有吸引力。
    • 正如其他人所指出的,RFC 是学习 XMPP 时最好的朋友。几年前我自己也在学习 XMPP,并将一点点信息编译成针对初学者的教程。 A friendly intro to XMPPRoster and Presence 应该是一个好的开始。
    【解决方案4】:

    RFC(列在维基百科页面上)应该是对这个主题的一个很好的介绍。

    例如:RFC3920: Extensible Messaging and Presence Protocol (XMPP): Core

    【讨论】:

    • 我宁愿找到除了原始协议之外的其他东西,这些都是为了精确而不是友好而编写的......但仍然知道它涵盖了基础有用的。
    • 所以您正在寻找 XMPP 的程序员教程,它不会深入了解协议的基础知识?我前段时间用“XMPP Python API”(Google AP-Engine)进行了实验:code.google.com/appengine/docs/python/xmpp/overview.html也许这可以成为进入 XMPP 世界的入口:)
    • 有点……但我与您合作过的每项技术都有官方规范作为参考,但请阅读旨在更快学习基础知识的教程。像 DirectX 或 Spring 或 CSS 或其他任何东西。
    • 我明白了。您要求的基本术语在 RFC 和 xmpp.com 上进行了定义和描述(也许只有那里......)。对于更实用的介绍,有十几个示例和教程可以在 Web 上使用 Java、Perl、Ruby、Python 等不同的 API 构建您自己的 Jabber 客户端(参考上一条评论中的链接)。
    • @FloE,您引用的 RFC 已过时。除了阅读 RFC 还不够,还有大量相互关联的 RFC 可供 XMPP 阅读。
    【解决方案5】:

    这可能是一个老问题,但我只是想保留我用来学习 XMPP 的过程。

    几年前,我和我的几个朋友正在学习如何利用 XMPP,而了解它如何融入更大的部分是一项相当乏味的任务。我强烈建议从阅读 XMPP 的维基百科页面开始:

    http://en.wikipedia.org/wiki/XMPP

    您会惊讶于有多少人无法回答有关 XMPP 最基本的问题。

    我也强烈推荐阅读这篇文章:

    http://www.infoworld.com/article/2682116/application-development/xmpp-rises-to-face-simple-standard.html

    它会让您了解 XMPP 背后的动机、它的历史以及曾经与之相提并论的协议。

    从那里开始,最好阅读维基百科页面的来源,以便更深入地了解您可能对 XMPP 感兴趣的任何功能。

    【讨论】:

      【解决方案6】:

      使用来自

      的 xmpp asmack 库

      http://beem-project.com/projects/beem/files 下载 asmack-android-7-beem-jingle.jar

      和文档

      http://www.igniterealtime.org/downloads/index.jsp

      希望它能像它帮助我一样帮助其他人

      【讨论】:

      • 为什么使用 Beem 而不是原来的 ASmack 页面?
      • @Pacerier 上次我检查 asmack 不稳定而且没有定期更新,所以我改用了定期更新的 beem 版本的 asmack,它看起来也更稳定。跨度>
      【解决方案7】:

      在服务器端安装 openfire 并在 android 端使用 qsmack。

      【讨论】:

      • 为什么我们使用 qsmack 而不是 asmack?
      猜你喜欢
      • 1970-01-01
      • 2010-12-23
      • 2011-09-22
      • 2010-09-26
      • 2011-02-06
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多