2010-06-22 163 views
108

我一直在寻找一些开源的XMPP服务器,并且熟悉官方页面http://xmpp.org/。但到目前为止,我还没有发现任何东西。“可扩展消息和呈现协议(XMPP)是一种用于实时通信的开放技术”和XEP规范列表。例如,解释基础知识和术语的文章 - 节,智商,在场等等。即使是Wikipedia页面也没有这样做,毫不奇怪,开源项目假设你在开始深入代码之前知道这些东西。关于XMPP的好教程?

是否有一个很好的,(半)正式的教程集呢?我需要寻找Jabber资源而不是XMPP吗?

其中,我希望看到用例和流程图,而不仅仅是干协议文本。我知道有关XMPP的书籍,但通常书中的任何内容都可以在网上以某种形式获得。

回答

8

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

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

+2

我宁愿找到原始协议以外的东西,它们的写法都是精确的而不是友好的......但仍然知道它涵盖了有用的基本原则。 – 2010-06-22 11:46:25

+0

所以你正在寻找一个XMPP的程序员教程,它不会深入到协议的基础知识? 我前段时间用“XMPP Python API”(Google AP-Engine)进行了实验:http://code.google.com/appengine/docs/python/xmpp/overview.html 也许这可能是一个条目到XMPP世界:) – FloE 2010-06-22 11:52:19

+0

有点......但是我曾与你一起工作过的每一项技术都有官方规范作为参考,但是阅读教程可以更快地学习基础知识。像DirectX或Spring或CSS或其他任何东西。 – 2010-06-22 12:12:56

36

这里是让我startet上XMPP发展:

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

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

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

+0

Openfire是我的选择,实际上,和Java。 – 2010-06-22 12:50:36

+0

好。我建议你看看这本书。由于API类大多是以xmpp概念/节的形式命名的,所以一旦您了解了基本术语,您就有了一个很好的起点。 – tweber 2010-06-22 13:46:03

+0

这是该书的合法版本吗?我宁愿找到免费的在线资源,但如果我使用一本书,我宁愿付钱,如果我应该? – 2010-06-22 16:31:22

17

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

E.g.你提到想知道一节的定义,在6120 section 8中解释过(用例子)。

如果您对如何使规格更清晰有任何反馈,请在XMPP mailing list上说明,其中所有反馈都将在下一版规范中考虑。

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

+1

善良,仅RFC 6120超过200页长。我认为他们应该保持**简单** .......... – Pacerier 2014-11-24 12:01:43

+1

简单并不自动暗示一个简短的规范。我自己发现XMPP非常简单。特别是XMPP的模块性,即XMPP核心,XMPP IM和XEP之间的分割使得我对该协议有吸引力。 – Flow 2015-02-03 16:16:07

52

这可能是太多的基础,但至少它的技术:http://www.adarshr.com/fun-with-xmpp-and-google-talk和第二部分,http://www.adarshr.com/fun-with-xmpp-and-google-talk-part-2

它解释节是什么,什么类型都可以和东西。

+0

我们简化了在iOS下使用可可豆荚创建聊天应用程序的过程,您可以在此处了解更多或下载演示代码https://github.com/processone/demo-xmpp-ios – Loegic 2015-07-24 16:36:27

+0

正在维护中 对不便,我很抱歉重建本网站以使您的体验更加美好。 这不应该花很长时间。 – Adil 2018-02-12 11:10:49

+0

我的镜像仍然存在,不知道为什么它从我的答案中删除... https://f.gdr.name/xmpp-tutorial.tar.gz – GDR 2018-02-19 09:19:26

1

http://beem-project.com/projects/beem/files 下载使用XMPP asmack库asmack-Android的7-BEEM-jingle.jar

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

文档希望它可以帮助别人喜欢它帮我

+0

为什么要使用Beem而不是原始的ASmack页面? – Pacerier 2014-11-24 11:34:03

+0

@Pacerier我最后一次检查asmack不稳定,它并没有经常更新,所以我反而使用了bema版本的asmack,它定期更新,它也似乎更稳定。 – 2014-11-24 11:41:00

1

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

+2

为什么我们qsmack而不是asmack? – Pacerier 2014-11-24 11:36:40

2

这可能是一个老问题,但我只是想保持我用来学习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感兴趣的任何功能。