2016-11-23 8 views
1

Webソケットからメッセージが届いています。 B C C 私は最後の状態に興味を持っていますRxAndroidメッセージキューのタイムアウト

(:彼らはいくつかのオブジェクトの状態変化がのは、これらの状態A、B、C

がメッセージに名前を付けましょう 含ま )このタイプのメッセージに関連するwsのアクティビティがありません。 だから、どういうわけか キューに入れて、ある程度の非アクティブ(1000ms)後には、最後の(A)メッセージの最後のメッセージはとなります。 RxAndroidを使用してどのように実装しますか? (私はすでにRetrolambdaを有線およびすべてのRxに関連している、また、いくつかの非同期のものを作業方法の カップルを持っている)

+0

メッセージAの観測可能性について 'debounce()'を試してみてください。 http://reactivex.io/documentation/operators/debounce.html – vkislicins

+0

オペレータ用のTnxですが、少しのコードが助けてくれます。 – miroslavign

+1

すごく慌てていて、何かをすばやく参照して助けたいと思って申し訳ありませんあなたを助けるかもしれない。役に立たなかった場合はお詫び申し上げます。 – vkislicins

答えて

0

あなたは自分のタイプして、デバウンスに基づいてメッセージをフィルタリングすることができます

Observable<Message> debouncedStream = messageObservable 
.filter(message -> message.getType().equals("A")) 
.debounce(1 , TimeUnit.Seconds); 
+0

実際に私はそれらをフィルタリングしたくない、私はこのrxのものに行く前にそれらを事前にフィルタリングします。私はちょうど新しいメッセージが到着した後に最後のものを使いたいです。 – miroslavign

1

私は違いを参照してください。代わりに.debounce()

Observable<Message> debouncedStream = messageObservable 
    .samlpe(1 , TimeUnit.Seconds); 

.sample()を使用することをお勧めし、あなたのケースで推測sampledebounce

関連する問題