Если вы имеете в виду pubsub, то вы можете настроить узел так, чтобы он не сохранял элементы с persist_items
и max_items
.
Если у вас нет контроля над созданием узла, тогда вы можете проверить наличие пространства имен задержки (jabber:x:delay
и / или urn:xmpp:delay
) в пакете
public void processPacket(Packet pkt) {
DelayInformation delay = (DelayInformation)pkg.getExtension("x", "jabber:x:delay");
if (delay != null)
return; //Discard this packet
delay = (DelayInformation)pkg.getExtension("x", "urn:xmpp:delay");
if (delay != null)
return; //Discard this as well
//Otherwise this is a good packet
...
}
Вы также можете принять какое-то решение, изучив объект DelayInformation
относительно продолжительности, причины и т. Д.
Если это PEP, то вы всегда будете публиковать последний элемент, и я думаю, что нет способа определить, было ли это задержано, а именно. в пакете нет информации о задержке.
Вам нужно либо получить ночных сборок , либо собрать свою собственную для поддержки pubsub. Я не думаю, что текущая версия Smack 3.1.0 поддерживает pubsub.