Based on the comments above, you can implement a pull architecture with something like this:
Store all events in a central place, accessible for all sessions (Singleton, Database, etc.). Verify that a consistent identifier exists.
Save the last event identifier received in the session. As needed, request events with identifiers that exceed the last identifier stored in the session.
Hope this helps.
Andres olarte
source share