Subscribing with the last replay id makes the app receive the older events
mahesh2080 opened this issue · 0 comments
mahesh2080 commented
The following issue occurs when a session is closed after 3 hours of inactivity. We are subscribing with the last replay id but the app receives older (already received) events.
code in main()
bayeuxClient.AddExtension(new ReplayExtension());
ClientSessionChannelListener clientSessionChannel = new ClientSessionChannelListener();
bayeuxClient.GetChannel(ChannelFields.META_HANDSHAKE).AddListener(clientSessionChannel);
code in ClientSessionChannelListener
public void OnMessage(IClientSessionChannel channel, IMessage message)
{
long lastProcessedReplayId = GetLastProcessedReplayId();
_bayeuxClient.GetChannel('/topic', lastProcessedReplayId).Subscribe(new Listener(_platformEventsMessage, channelInfo));
}
If we do not pass the last id, the app does not receive the already processed events (the issue does not occur).
_bayeuxClient.GetChannel('/topic').Subscribe(new Listener(_platformEventsMessage, channelInfo));
Similar issue:
#5