3

xmppを使用してアプリに2つの機能を含めることを検討しています。1つ目は(ストローフィを使用して)ほぼ完了した1対1のチャットで、2つ目はFacebookで機能するのと同じようにリアルタイムの通知です。xmppでpubsubシステムを理解しようとしましたが、この特定の問題に適しているとは思いません。間違っている場合は修正してください。概念が正しく取得されていないことが原因である可能性があります。私の要件はこれです-すべてのユーザーが起動できる事前定義されたイベントがあり、1つが起動すると、オンラインの他のユーザーは同じ通知を受け取る必要があります。さらに、通知を送信する前に、ユーザーが通知の受信を希望しているかどうかも確認したいと思います。ここで得られないのは、pubsubを使用するかどうか、ノードがどこにどのように適合するかです。他のすべての人がサブスクライブするノードを1つだけ作成できますか?その場合、サブスクライバーはノードの所有者でなくても、どのようにイベントを公開しますか?

私が考えているもう1つの方法は、すべてのユーザーのjidに、<notif/>通常のメッセージと区別するために、見出しタイプまたは追加のペイロードを使用して1つずつメッセージを送信することです。この方法は、スケーラビリティを考慮に入れても問題ありませんか?

4

4 に答える 4

1

MUCPubSubは機能しますが、説明する内容は(マルチユーザーチャット)のように感じられます。

基本的に、それはあなたの訪問者が参加できるチャットルームを作成し(おそらくこの言い回しを使用しない)、そして、まあ、彼らのいずれかがチャットルームへのメッセージを感知すると、彼ら全員がそれを受け取ります。確かに、特定のユーザーのみに公開を許可する構成にすることができます。

Stropheを使用すると、すでにブラウザでクライアントを実行しているので、かなり簡単なはずです。このMUCコンポーネントがサーバーで実行されていることを確認してください。

于 2010-09-07T12:23:52.340 に答える
1

xmpphpライブラリで実行しようとしていること、つまり必要に応じて複数のjidにメッセージを送信することは、pub-subまたはMUCが実行できることです。:Dしたがって、アプリケーションの種類に応じて、1つを選択し、xmppの実験を進める必要があります。続行すると、状況が明確になるはずです。

于 2010-09-07T20:51:52.667 に答える
1

リアルタイム通知に関する2番目の質問に答えるには、pubsubの代わりにPEPを使用する必要があります。2つの主な違いは、PEPはあなたの名簿に載っている人にのみ公開するということです。これは、あなたが望むものだと思います。さらに、PEPはpubsubや少なくともjabber.orgがサポートするよりも広くサポートされていると思います。PEPの唯一の問題は、エンティティ機能のサポートが必要なことです。

私はここでそれについてブログを書きました。例はJavaです。あなたがそれに不利にならないことを願っています;-)

于 2010-09-08T03:25:47.017 に答える
0

この場合、Pubsubが適切なソリューションになります。それは私が見ることができるものからあなたのすべての要件を処理します。ユーザーがメッセージタイプごとに異なる方法でサブスクライブすることを期待する場合は、イベントタイプごとにノードを設定する必要があります(または、単一のノードでフィルターを使用できますが、複数のノードの方が簡単だと思います)。ノードの所有者は誰でもノードに公開できるようにすることができるので、それは問題ではありません。

PEPについて言及されましたが、名簿に載っていないユーザーに公開する場合は適切なソリューションではありません。

Pubsubでは、メッセージに必要なコンテンツタイプを定義することも、メッセージ送信の単純な動作で十分な情報が得られる場合はまったく定義しないこともできます。

于 2010-09-15T14:40:32.523 に答える