问题描述
我是 RXKotlin/RXJava 的新手。 我正在 Android 中开发后台服务。
在我的服务中,我有
- 蓝牙插座
- TCP 套接字
每当蓝牙套接字上的数据可用时,读取和写入 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
}
)
就是这样。
请确保订阅发生在蓝牙套接字开始发布数据之前。