私の Android アプリではSocket
、バイト配列を送受信するために a を使用する必要があります。便宜上、にObservable
接続して作業したいと思いSocket
ます。
インターネットで検索すると、次のコードが見つかりました。
import rx.lang.scala.Observable
val s = Observable.using[Char,Socket](new Socket("10.0.2.2", 9002))(
socket => Observable.from[Char](Source.fromInputStream(socket.getInputStream).toIterable),
socket => Try(socket.close))
.subscribeOn(rx.lang.scala.schedulers.IOScheduler.apply)
val a = s.subscribe(println, println)
動作しますが、一度に 1 文字ずつ出力します。たとえば、「hello there」文字列が送信された場合、出力は次のようになります。
I/System.out: h
I/System.out: e
I/System.out: l
I/System.out: l
I/System.out: o
I/System.out:
I/System.out: t
I/System.out: h
I/System.out: e
I/System.out: r
I/System.out: e
しかし、サブスクリプションでバッファリングされたバイト配列を受け取りたいです。どうすればそれを達成できますか?