如何在PubSub中获取离线消息?使用Smack库。搜索后,我找到了一个看起来像这样的答案:
// 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)如何知道谁(发布者)在节点中发送此消息?
我刚刚浏览了here中Smack和PubSub的文档
和here,但找不到与我的查询相关的解决方案。那么有人可以帮助我解决这个问题吗?
最佳答案
我建议使用PubSub项目ID。
PubSub节点没有按预订的未读邮件数。
如果自从PubSub节点收到最后一个项目以来要 catch 所有新项目,通常会记住最后一个项目的ID,并使用该ID在PubSub节点上查询所有较新的项目。不幸的是,(当前)无法在特定ID之后向PubSub节点查询较新的项目。
但是,如果您已订阅节点,那么即使您处于脱机状态,该服务也会通知您有关新项目的信息。并且,如果您的服务器为您存储了这些脱机消息,那么最终您将收到它们。
不幸的是,没有可靠的方法来发布项目的实体的JID。扩展XEP可能也可以解决此问题。
关于xmpp - 如何管理XMPP中离线时发送的PubSub通知?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46467802/