5

OpenfireStrophe.jsを使用してチャット アプリケーションを作成しようとしています。

私は常に XEP などについて読んでいますが、常にXMPP 拡張機能にリダイレクトされており、これらの拡張機能の使用方法さえ知りません。これはばかげた質問のように思えるかもしれませんが、私はXMPPを初めて使用するので受け入れることができます。

4

2 に答える 2

12

この質問をする人は、通常、すでに必要なものをすべて実装している XMPP ライブラリから始める必要があります。

それはまだ答えに値する!

XMPP は、eXstensible Messaging and Presence Protocolの略です。「拡張可能な」部分が重要です。XMPP は、ネームスペースと呼ばれる概念をサポートするデータ形式である XML に基づいています。

名前空間によって、元の仕様で定義されていないビットを XMPP に追加できます。XMPP 仕様は意図的に次のような主要なもののセットのみを記述しているため、これは重要です。

  • クライアントがサーバーに接続する方法
  • 暗号化 (SSL/TLS)
  • 認証
  • メッセージをリレーするためにサーバーが相互に通信する方法

...その他の基本的な構成要素がいくつかあります。

この機能を実装すると、XMPP クライアントが作成され、好きな種類のデータを送信できます。しかし、それも問題です。

たとえば、コア XMPP 仕様で定義されていないフォーマット ( bolditalicなど) をメッセージに含めることにしたとします。まあ、あなたはそれを行う方法を作ることができますが、他の誰もがあなたと同じようにしない限り、他のソフトウェアはそれを解釈できません (理解できない名前空間を無視するだけです)。

そのため、XMPP Standards Foundation (XSF) は、 XMPP Enhancement Proposals (XEP)として知られる一連の追加ドキュメントを公開しています。一般に、各 XEP は特定のアクティビティ (メッセージのフォーマット、ファイル転送、マルチユーザー チャットなど) を記述し、そのアクティビティに使用する標準フォーマットをすべての人に提供します。

あなたはStrophe.jsに言及しました。これは、必要な拡張機能を自分で実装することを期待する「低レベル」のライブラリです。それらのほとんどは難しいとは思いませんが、双方向プロトコルや基本的な XML/DOM の概念などに慣れていない場合は、時間をかけて学習する必要があります。Strophe.js の作成者は、XMPP Web 開発の入門書としても役立つ優れた本、Javascript および jQuery を使用した Professional XMPP Programming を書きました。

この質問は、XMPP: The Definitive Guideでもある程度詳しく回答されており、コア プロトコルと一般的な拡張機能の広範な概要も提供されています。

XMPP をさらにオンラインで読むには、この StackOverflow の質問でいくつかのヒントが得られる場合があります.

お役に立てれば!

于 2013-08-11T15:35:26.857 に答える