2011-12-23 14 views
0

iPhoneとAndroidのネイティブアプリからチャットアプリケーションにアクセスできます。私はそれがどのように行われるかを研究するのに時間を費やしましたが、私はまだそれをかなりよく理解していません。たとえば、モバイルチュートリアルのチュートリアル(http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/)xmppサーバーにAPIを追加しますか?カスタムAPIを使用したxmppサーバーのコンセプトが不明確

しかし、私のチャットアプリがログインを越えることができるようにするには、&のメッセージを送信してください。どうすればいいですか?オンライン

  • ユーザー(場所、年齢など一定のcriteraを満たし今
  • ユーザー:たとえば

    は、私が追加したい一つの特徴は、以下のような基準についてユーザーベースを検索することができることです)

たとえば、私がxmppサーバーとしてejabberdまたはOpenfireを使用している場合、iPhone/Androidからアクセスできるこれらの新しいカスタムAPIを追加するにはどうすればよいですか?

私はちょうどここにラフな例を作ってるんだが、多分このような何かを行うことができるようにいいだろう:

- (NSArrayの*)findUsersInCity:(NSStringの*)

方法をcityName xmppサーバーでcityname基準に一致するユーザーのリストを返すようにすることはできますか?

ありがとうございます!

XMPPコンポーネント

コンポーネントは、XMPPサーバーに別々に存在します。

答えて

4

は、XMPPサーバーを拡張するには、いくつかの異なる方法があります。かなりの言語で書くことができ、プロトコル(http://xmpp.org/extensions/xep-0114.html)に従ってXMPPサーバーに接続します。コンポーネントはサーバーのサブドメインを処理するために登録され、そのコンポーネントに宛てられたすべてのメッセージ/ IQは、XMPPサーバーからコードに直接渡され、処理して応答します。たとえば、[email protected]/resourceではなく、[email protected]/resourceにメッセージを送信することができます。

コンポーネントのメリットは、どのようなXMPPサーバー(ほとんどの主要コンポーネントでもコンポーネントをサポートしている)で動作することです。たとえば、Openfireからejabberdに変更する場合は、何もする必要はありません。欠点は、サーバー自体のデータにアクセスできないことです。外部データへのアクセスを提供する場合(自分のデータベースなど)、十分ではない場合もあります。

プラグイン/モジュール

これらは、サーバー固有であり、サーバと同じ言語で記述する必要があります。 Openfireにはプラグインがあり、ejabberdにはモジュールがあります。これらはXMPPサーバーと統合でき、さらに多くのオプションを提供します。 XMPPサーバを切り替えるには、最初から開発を開始する必要があります。 Openfire用のプラグインを作成したい場合は、Plugin GuideとOpenfire API:API Docsを見てください。 APIは豊富で、サーバーが利用できるデータのほとんどを取得できます。

修正ソースコード

ない良いオプションが、言及する可能性の価値 - あなたは、Openfireのソースコードをダウンロードし、あなたの修正を行い、それを再構築することができます。あなたが必要とするものをAPIが提供できないと確信していた場合にのみ、私はこれを行います。

+1

「XEP-0055(http://xmpp.org/extensions/xep-0055.html)を話すために両方を教える」を追加すると、この回答はかなりよく見えます。 –

関連する問題