0

如果会话在 3 小时不活动后关闭,则会出现以下问题。我们正在订阅最后一个重播 id,但应用程序接收到较旧的(已经接收到的)事件。

main() 中的代码

bayeuxClient.AddExtension(new ReplayExtension());
ClientSessionChannelListener clientSessionChannel = new ClientSessionChannelListener();
bayeuxClient.GetChannel(ChannelFields.META_HANDSHAKE).AddListener(clientSessionChannel);

ClientSessionChannelListener 中的代码

public void OnMessage(IClientSessionChannel channel, IMessage message)
{
     long lastProcessedReplayId = GetLastProcessedReplayId();
     _bayeuxClient.GetChannel('/topic', lastProcessedReplayId).Subscribe(new Listener(_platformEventsMessage, channelInfo));                        
}

如果我们不传递最后一个 id,则应用程序不会收到已处理的事件(不会发生此问题)。

_bayeuxClient.GetChannel('/topic').Subscribe(new Listener(_platformEventsMessage, channelInfo));
4

0 回答 0