2017-09-28 6 views
10

PubSubでオフラインメッセージを取得するには? Smackライブラリの使用。PubSub通知をXMPPでオフラインで送信する方法を管理するにはどうすればよいですか?

// Create a pubsub manager using an existing XMPPConnection 
PubSubManager mgr = PubSubManager.getInstanceFor(con); 

// Get the node 
LeafNode node = mgr.getNode("testNode"); 

List<? extends Item> items = node.getItems(100); 

しかしnode.getItems(100)戻り、あまりにもオンラインとオフラインすることができ、最後の100件のメッセージ:検索した後、私はこのようになります答えを見つけました。

1)smackを使ってpubsubのオンラインメッセージとオフラインメッセージを追跡する方法はありますか?

2)smackを使用してpubsubで未読メッセージ数を取得することは可能ですか?もしそうなら、それを達成する方法は?

3)who(発行者)がノードでこのメッセージを送信することを知る方法?

私はちょうどherehereからスマックとのPubSubの文書化を経たが、私のクエリに関連した解決策を見つけることができませんでした。だから誰も私を助けることができますこれを解決する?

答えて

3

1) smackを使用して、pubsubのオンラインメッセージとオフラインメッセージを追跡する方法1)

PubSubのアイテムIDを使用することをおすすめします。

2)smackを使用してpubsubで未読メッセージ数を取得することは可能ですか? はいの場合はどのように達成するのですか?

PubSubノードには、購読されていない未読メッセージ数がありません。

PubSubノードから最後のアイテムを受け取ってからすべての新しいアイテムに追いつく場合は、通常、最後のアイテムのIDを覚えておき、PubSubノード上の新しいアイテムをすべてクエリします。残念ながら、特定のIDの後に新しい項目のPubSubノードを照会する方法はありません(現在)。

しかし、あなたがノードに加入している場合、オフラインであってもサービスは新しいアイテムについてあなたに通知します。そしてあなたのサーバがそれらのオフラインメッセージをあなたのために保管していれば、それは最終的にそれらを受け取るでしょう。

3)who(発行者)がノードでこのメッセージを送信することを知る方法?

残念ながら、アイテムを公開したエンティティのJIDには信頼できる方法はありません。これも拡張XEPで修正される可能性があります。

関連する問題