RXKOTLIN/RXJAVA:使用 Observables 的套接字之间的通信

问题描述

我是 RXKotlin/RXJava 的新手。 我正在 Android 中开发后台服务。

在我的服务中,我有

每当蓝牙套接字上的数据可用时,读取和写入 TCP 套接字。并且每当 TCP 套接字接收到数据时,写入蓝牙套接字。

有人可以帮我吗:

  • 如何使用 Observables 实现这一目标?
  • 如何交换socket id信息?
  • 如何交换数据? 谢谢

解决方法

请尝试使用 RxSubjects (https://blog.mindorks.com/understanding-rxjava-subject-publish-replay-behavior-and-async-subject-224d663d452f)

这里我以 PublishSubject 为例。

//a publish subject which publishes int values
public PublishSubject<Integer> source = PublishSubject.create();
source.onNext(1);
source.onNext(2);

所以上面的代码行在蓝牙套接字类中。

现在在TCP socket类中,使用源码,可以在这里观察。

source
    .subscribe(
        {
           //result
        },{
           //error
        }
    )

就是这样。

请确保订阅发生在蓝牙套接字开始发布数据之前。