メッセージが到着するたびにビープ音を鳴らすインスタント メッセージング アプリがあるとします。ビープ音を鳴らしたいdebounce
のですが、次のメッセージではなく、最初に届いたメッセージに対してビープ音を鳴らしたいと思います (たとえば、2 秒間)。
もう 1 つの例として、アプリが入力通知を送信する (チャットしているユーザーが、私がメッセージを入力していることを確認できるようにする) ことが考えられます。入力を開始したときに入力通知を送信したいのですが、新しいものは X 秒間隔でのみ送信するため、入力するすべての文字に対して入力通知を送信するわけではありません。
これは理にかなっていますか?そのためのオペレーターはありますか?既存の事業者で実現できるか?
これは最初の例の私のコードです。で解決していますがdebounce
、理想的ではありません。1 秒間隔で 1000 件のメッセージを受信すると、最後のメッセージが到着するまでサウンドが再生されません (最初のメッセージでサウンドを再生したい)。
self.messagesHandler.messages
.asObservable()
.skip(1)
.debounce(2, scheduler: MainScheduler.instance)
.subscribeNext { [weak self] message in
self?.playMessageArrivedSound()
}.addDisposableTo(self.disposeBag)
ありがとう!