android - WebSocket 和 Rx Java

标签 android reactive-programming rx-java rx-android

我正在开发一个使用 WebSocket 协议(protocol)与服务器通信的 Android 应用程序。我使用 AsyncAndroid 库。 WebSocket 有监听器,从服务器接收数据。

像这样

private WebSocket.StringCallback mStringCallback = new WebSocket.StringCallback() {
        @Override
        public void onStringAvailable(String s) {

        }
    };

我需要写这个 api,我想使用 rxjava。但我无法想象,那应该是 Observable,那个 Observer。我试图将从服务器接收到的 Observable 字符串转换为 WebSocket 监听器,但我认为这是个坏主意。 是否有任何想法如何正确构建 api。 谢谢你。

最佳答案

您可以像这样将 WebSocket 包装到一个新接口(interface)中:

interface RxWebSocket {
    void send(byte[]); // send data
    Observable<String> stringObservable(); // receive string data
}

然后在 RxWebSocket 实现中,您可以使用 PublishSubject 和内部 WebSocket.StringCallback 来发布字符串。

关于android - WebSocket 和 Rx Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30926543/

相关文章:

java - Spring 中新线程上的 Rx java 本地化问题

android - 在 Android 中,在 WorkManager 的 Worker 类中运行异步任务

android - 使用 Retrofit 和 Realm 在 RxJava 中纠正流程

android - 如何检测 Android 应用程序何时在模拟器中运行?

Android openRawResource() 不适用于可绘制对象

java - Android:使用一个套接字连接跨所有 Activity

c# - CombineLatest 是否保留了可观察量的顺序?

java - 非阻塞 Java 异步处理 - 如何限制内存使用?

android - 使用 doInBackground (AsyncTask) 时无法显示 toast

ios - 如何从 Swift View 模型绑定(bind)到 Obj-c View Controller ?