On 5 September 2015 at 15:22, Matthieu Rakotojaona <matthieu.rakotoja...@gmail.com> wrote: > Hey everyone, > > I'm currently toying with XEP-0060 and have found what I think is a > shortcoming with the spec (or possibly with my knowledge) > > Consider this use case: > > * Patrick is a publisher to a given node, Sandra is a subscriber to the > same node > * Sandra is online > * Patrick publishes something, the notification goes to Sandra (either > with or without payload, Sandra is able to get the item) > * Sandra disconnects > * Patrick modifies the item and publishes 7 other (that's an arbitrary > number) > * Because the pubsub service is configured like that, no notification is > sent to Sandra > * Sandra connects and gets the last published item > > At that point Sandra sees that there is at least 1 new item (the last > one). However she doesn't know which one have changed. She can request > the latest items through the max_items query, but she doesn't know how > many; the only sure way to make sure she's up to date is to query ALL > items. > > She could use XEP-0313 (MAM), but: > - Not all pubsub implementations allow MAMing them (prosody is one of > them) > - MAM only allows something like "give me everything since this moment", > however using dates is always problematic (clocks are not > synchronized, time can drift, ...) > > Basically the problem here is when you have a persisting node where > items can be modified. You need to get some "checkpoints" and be able to > query the pubsub service from that checkpoint to get everything that > happened. > > Has anyone had this issue ? If you did, how did you solve it ?
Yes, this has been discussed before. A XEP came from it, take a read through this thread: http://mail.jabber.org/pipermail/standards/2012-March/025834.html It's not perfect, but much simpler than your proposal. Regards, Matthew