XMPPの良いチュートリアルは?[閉まっている]


110

私はいくつかのオープンソースXMPPサーバーを見てきましたが、公式ページhttp://xmpp.org/に精通しています。しかし、これまでのところ、「Extensible Messaging and Presence Protocol(XMPP)is a open technology for real-time communication」とXEP仕様のリストの間に何も見つかりませんでした。たとえば、スタンザ、IQ、プレゼンスなどの基本と用語を説明する記事です。Wikipediaのページでもこれを見逃していますが、当然のことながら、オープンソースプロジェクトは、コードを掘り始める前にこれらのことを知っていると想定しています。

これに関する優れた(半)公式のチュートリアルセットはありますか?XMPPではなくJabberリソースを探す必要がありますか?

特に、ドライプロトコルテキストだけでなく、ユースケースとフローの図も見たいと思います。XMPPに関する本は存在することは知っていますが、一般的に、本の中の何でもオンラインで入手できます。

回答:


53

これはおそらくあまりにも基本的ですが、少なくとも技術的です:https : //web.archive.org/web/20170916193014/http : //www.adarshr.com/fun-with-xmpp-and-google-talk and the第2部、https://web.archive.org/web/20171005104211/http://www.adarshr.com:80 / fun-with-xmpp-and-google-talk- part-2

スタンザとは何か、使用可能なタイプなどについて説明しています。


ココアポッドを使用してiOSでチャットアプリを作成するプロセスを簡略化しました。詳細については、こちらからデモコードをダウンロードできます。github.com
processone /

私のミラーはまだアップしていますが、なぜそれが私の回答から削除されたのかわかり
GDR

36

XMPP開発の最初のきっかけは次のとおりです。

  • 良い本:XMPP Definivieガイド
  • 成熟したJava API。私はIgnite RealtimeからSmack Libraryを選択し、基本を学ぶために、たくさんの小さなスクリプトでGroovy言語を使用しました。

その後、OpenFire XMPPサーバー用のプラグインを開発しました。彼らのサイトにもいくつかのチュートリアルとフォーラムがあります。Smack APIとOpenfire APIはどちらも簡単に習得できると思います。

Javaに慣れていない場合:この本は、SkeekXMPP Pythonライブラリを参照し、それを使用していくつかの例(エコーボットなど)を作成します。


いいよ。その本をご覧になることをお勧めします。APIクラスはほとんどxmppの概念/スタンザにちなんで名付けられているため、基本的な用語を理解すれば、出発点として最適です。
towe75 2010年

1
また、jack moffitの「JavaScriptとjQueryを使用したProfessional XMPPプログラミング」は優れており、上記のもの(O'Reilly)よりも優れています。professionalxmpp.com

XMPPを読みながら、多くのタイプミスや間違いを確認できるように準備してください。Definivieガイド(主にサンプルコード)
kas-kad

XMPP The Definitive Guideは、古くて少し古くなっている可能性があります。
ジェリー

17

他の人が言ったように、仕様は良い紹介です。それらが本質的に技術的であり、正確に述べられていることは事実です-しかし、それらは実際、私があらゆるプロトコル、特に最新のRFC(6120および6121)で見た中で最高の仕様の一部であり、オリジナル。

たとえば、スタンザの定義を知りたいと言った場合、それは6120セクション8で(例とともに)説明されています。

仕様をより明確にする方法に関するフィードバックがある場合は、XMPPメーリングリストでその旨を伝えてください。すべてのフィードバックは、仕様の次のドラフトで検討されます。

仕様が本当に多すぎる場合(私よりも多くの写真が好きな方もいらっしゃると思います)、本を検討しください(紙でもデジタル形式でも)-コア仕様とほとんどの両方の簡単な紹介として正確に設計されています一般的な拡張機能であり、それらの開発と実装を支援する人々によって書かれています。


1
RFC 6120だけでも200ページ以上あります。そして、私は彼らがそれを維持することになったと思っシンプル ..........
Pacerier

1
単純さは、短い仕様を自動的に意味するものではありません。私自身はXMPPはかなり単純だと思っています。特にXMPPのモジュール性、つまりXMPPコア、XMPP IM、およびXEPの分割は、私にとって魅力的なプロトコルです。
フロー

1
他の人が指摘したように、XMPPについて学ぶとき、RFCは親友です。私は数年前に自分でXMPPを学び、初心者向けのチュートリアルに情報を少しずつまとめました。XMPPRoster and Presenceの親しみやすいイントロは、良いスタートです。
musimbate 2018年

8

RFC(Wikipediaのページにリストされています)は、このトピックの非常に優れた紹介です。

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


2
私は生のプロトコル以外のものを見つけたいと思います、それらはフレンドリーではなく正確に書かれています...しかし、それが基本をカバーしていることを知っていること有用です。
Mr. Boy

それで、プロトコルの基本にドリルダウンしないXMPPのプログラマーチュートリアルを探していますか?少し前に「XMPP Python API」(Google AP-Engine)で実験しましたcode.google.com/appengine/docs/python/xmpp/overview.html おそらくこれはXMPPの世界へのエントリーになる可能性があります:)
FloE

一種の...しかし、私があなたと一緒に働いたすべてのテクノロジーは公式の仕様を参照として持っていますが、基本をより速く学ぶためのチュートリアルを読んでください。DirectXやSpring、CSSなど、本当に何でも。
氏Mr. Boy

わかります。あなたが求めた基本的な用語は、RFCとxmpp.comで定義され、説明されています(おそらくそこだけです...)。より実用的な紹介として、Web上でJava、Perl、Ruby、PythonなどのさまざまなAPIを使用して独自のJabberクライアントを構築するための多数の例とチュートリアルがあります(前のコメントのリンクを参照)。
FloE 2010年

@FloE、引用したRFCは古くなっています。RFCを読むだけでは不十分であることに加えて、XMPPについて読むべき相互に関連したRFCがたくさんあります。
Pacerier 2014年

2

これは古い質問かもしれませんが、XMPPを学ぶために使用したプロセスをそのまま使用したかっただけです。

数年前、数人の友人と私はXMPPを活用する方法について学びました。XMPPがより大きな部分にどのように適合するかを理解するのは非常に退屈な作業です。XMPPのWikipediaページを読むことから始めることを強くお勧めします。

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

最も基本的なXMPPに関する質問に答えられない人がどれほどいるかに驚くでしょう。

また、この記事を読むことを強くお勧めします。

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

これにより、XMPPの背後にある動機、歴史、そしてそれと同等のプロトコルがわかるでしょう。

そこから、ウィキペディアのページのソースを読んで、XMPPで興味があると思われる機能をより詳しく理解することをお勧めします。


1

からxmpp asmackライブラリを使用します

http://beem-project.com/projects/beem/files ダウンロードasmack-android-7-beem-jingle.jar

とのドキュメント

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

それが私のように他の人を助けることを願っています


オリジナルのASmackページの代わりにBeemを使用する理由
Pacerier 2014年

1
@Pacerier最後にasmackが安定しておらず、定期的に更新されていないことを確認したので、代わりに定期的に更新されているbemバージョンのasmackを使用しました。
Sheraz Ahmad Khilji 2014

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.