关于XMPP的好教程?[关闭]


110

我一直在寻找一些开源XMPP服务器,并且对官方页面http://xmpp.org/熟悉。但是到目前为止,在“ 可扩展消息和状态协议(XMPP)是一种用于实时通信的开放技术 ”和XEP规范列表之间,我还没有发现任何问题。例如,解释基本知识和术语(节,IQ,状态等)的文章。甚至Wikipedia页面也错过了这一点,毫无疑问,开源项目假定您在开始学习代码之前就已经知道这些事情。

是否有一套不错的(半)官方教程?我是否需要寻找Jabber资源而不是XMPP?

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

Answers:


53

这可能太基础了,但至少是技术上的:https : //web.archive.org/web/20170916193014/http : //www.adarshr.com/fun-with-xmpp-and-google-talk和第二部分,https://web.archive.org/web/20171005104211/http://www.adarshr.com:80 / fun-with-xmpp-and-google-talk- part-2

它解释了什么是节,可用的类型和内容。


我们使用可可豆荚简化了在iOS下创建聊天应用的过程,您可以在此处了解更多信息或下载演示代码github.com/processone/demo-xmpp-ios
Loegic

我的镜子还在上,不知道为什么从我的答案中删除了它…… f.gdr.name/xmpp
GDR

36

这就是让我开始XMPP开发的起点:

  • 一本好书:XMPP Definivie指南
  • 成熟的Java API。我从Ignite Realtime选择了Smack库,并使用了时髦的语言和大量的小脚本来学习基础知识。

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

如果您不喜欢Java:本书引用了SkeekXMPP Python库,并使用它创建了一些示例(echo bot,...)。


精细。我建议你看看这本书。由于API类主要是根据xmpp概念/节命名的,因此一旦您了解基本术语,就会有一个很好的起点。
towe75 2010年

1
同样,杰克·莫菲特(Jack Moffit)的《使用JavaScript和jQuery编写的专业XMPP编程》也非常出色,比上面提到的一本更好(O'Reilly)。professionalxmpp.com

阅读XMPP时,请准备好看大量的打字错误和错误Definivie指南(主要在示例代码中)
kas-kad

XMPP权威指南功能强大而详尽,也许有些过时,但我自己开了个好头。
杰里

17

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

例如,您提到想知道节的定义,它在6120第8节中进行了解释(带有示例)。

如果您对如何使规范更加清晰有任何反馈,请在XMPP邮件列表中说出这样的观点,其中所有反馈都将作为下一版规范的草稿。

如果规格真的对您来说太多了(我很欣赏有些人喜欢比我更多的图片),请考虑一下本书(无论是纸质的还是数字形式的)- 该书的设计完全是对核心规格和最简单规格的简单介绍。通用扩展名,由帮助开发和实施扩展名的人员撰写。


1
好的,仅RFC 6120就有200多页长。我认为他们应该保持简单 ……
..

1
简单性不会自动暗示简短的规范。我自己觉得XMPP非常简单。特别是XMPP的模块化,即XMPP Core,XMPP IM和XEP之间的分离,使该协议对我来说很有吸引力。

1
正如其他人指出的那样,在学习XMPP时,RFC是最好的朋友。几年前,我自己在学习XMPP,并将一点点的信息汇编成针对初学者的教程。对XMPP名册和状态的友好介绍应该是一个好的开始。
musimbate

8

RFC(在Wikipedia页面上列出)应该是对该主题的很好的介绍。

例如:RFC3920:可扩展消息和状态协议(XMPP):核心


2
我宁愿找到原始协议以外的其他东西,这些协议是精确的而不是友好的……但是仍然知道它涵盖了基础很有用的。
Boy Boy先生2010年

因此,您正在寻找XMPP的程序员教程,而该教程不会深入探讨该协议的基础吗?我尝试前一段时间的“XMPP的Python API”(谷歌AP-引擎):code.google.com/appengine/docs/python/xmpp/overview.html 也许这可以给XMPP世界:)一个条目
浮冰

有点...但是我曾经与您合作过的每种技术都有正式的规范作为参考,但是请阅读旨在更快地学习基础知识的教程。像DirectX或Spring或CSS或其他任何东西。
Boy Boy先生2010年

我明白。您要求的基本术语已在RFC和xmpp.com中(可能仅在此处...)定义和描述。对于更实际的介绍,在网络上有十二个示例和教程,可使用Java,Perl,Ruby,Python等不同的API来构建自己的Jabber客户端(请参见上一注释中的链接)。
2010年

@FloE,您引用的RFC已过时。除了阅读RFC还不够以外,还有许多相互关联的RFC供XMPP阅读。
Pacerier,2014年

2

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

几年前,我和我的几个朋友正在学习如何利用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背后的动机,它的历史以及曾经与之相提并论的协议。

从那里开始,最好阅读Wikipedia页面的源代码,以便对您可能对XMPP感兴趣的任何功能有更深入的了解。


1

使用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,2014年

1
@Pacerier上次我检查asmack不稳定,并且没有定期更新,因此我改用了asmack的beem版本,该版本定期更新,而且看起来也更稳定。
Sheraz Ahmad Khilji 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.