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