2010-09-21 54 views
1

我遇到使用Smack 3.1的应用程序和运行openfire的服务器的问题。在启动应用程序时,它将读取节点上的最后一条消息。这不起作用,因为消息被解析,处理并放入数据库。除了在有效负载中发送消息创建时间之外,有什么方法可以阻止这种重复? (实际上,如果无论如何表示消息已被“消耗”会很棒)Smack阅读旧事件

+0

你指的是什么类型的消息/节点? – Robin 2010-09-21 21:47:59

回答

1

如果您指的是pubsub,那么您可以配置该节点,使其不会持续存在persist_itemsmax_items的项目。

如果你有超过节点创建无法控制那么你可以做的是在数据包检查的延迟命名空间(jabber:x:delay和/或urn:xmpp:delay

​​

您也可以通过检查做出一些决定DelayInformation对象多长时间,原因等

如果是PEP,那么你将永远得到最后发表的项目,我认为没有办法确定它是否延迟,也就是说,数据包中没有延迟信息。

您需要获得nightly buildsbuild your own以获得pubsub支持。我不认为目前的版本Smack 3.1.0支持pubsub。

+0

当你说pubsub时,它引发了我的记忆,并且快速浏览maven依赖关系显示我们正在使用smackx-pubsub .4。我仍然在探索,但你让我的世界更加接近(如果这样做,一个可以接受的答案) – 2010-09-22 12:56:05