基于内容

时间:2016-07-11 13:24:13

标签: rx-java observable

我使用vertX和RxJava开始了一个项目,我遇到了一个问题,我找不到解决方案。

我有一个Observable,它为传入的通信发出WebSocketFrame, 每个WebSocketFrame都由一个有效负载(一个ByteBuffer)和标志组成,这些标志表明它是消息的第一帧或最后一帧。

我想对此Observable进行操作,将其转换为发出包含每条消息所有帧的ByteBufferd的Observable。

我尝试了buffer方法,但似乎是按照任意标准(时间或其他可观察的)重新组合项目。

另一种方法似乎是使用compose订阅WebSocketFrame observable,添加到非结束帧的缓冲区,以及" feed"结束帧上的ByteBuffer Observable。但我不知道如何手动创建和提供缓冲区。

因此,如果有人已经看到这个问题(恕我直言似乎很常见)并且有足够的RxJava知识来提出实现,我将非常感激。

谢谢你的阅读。

1 个答案:

答案 0 :(得分:2)

我猜你必须使用buffer运算符(也许你可以使用更简单的buffer,但我不确定)。另请参阅涵盖大致相同主题的this other questionthis GitHub page以进行更多讨论。希望这能帮到你!