我使用vertX和RxJava开始了一个项目,我遇到了一个问题,我找不到解决方案。
我有一个Observable,它为传入的通信发出WebSocketFrame, 每个WebSocketFrame都由一个有效负载(一个ByteBuffer)和标志组成,这些标志表明它是消息的第一帧或最后一帧。
我想对此Observable进行操作,将其转换为发出包含每条消息所有帧的ByteBufferd的Observable。
我尝试了buffer
方法,但似乎是按照任意标准(时间或其他可观察的)重新组合项目。
另一种方法似乎是使用compose
订阅WebSocketFrame observable,添加到非结束帧的缓冲区,以及" feed"结束帧上的ByteBuffer Observable。但我不知道如何手动创建和提供缓冲区。
因此,如果有人已经看到这个问题(恕我直言似乎很常见)并且有足够的RxJava知识来提出实现,我将非常感激。
谢谢你的阅读。答案 0 :(得分:2)
我猜你必须使用buffer
运算符(也许你可以使用更简单的buffer
,但我不确定)。另请参阅涵盖大致相同主题的this other question和this GitHub page以进行更多讨论。希望这能帮到你!