解码来自多个缓冲区的SBE消息

时间:2017-04-04 03:09:45

标签: java streaming nio

如果消息太大或以某种方式位于缓冲区的两侧,该怎么办? 这是示例

DirectByteBuffer buffer1 = ByteBuffer.allocateDirect(128);
DirectByteBuffer buffer2 = ByteBuffer.allocateDirect(128);
channel.read(buffer1);
channel.read(buffer2);
Car car = new Car();
car.wrap(buffer1, 256); //????

现在假设Car对象在两个缓冲区中,开头位于buffer1,结尾位于buffer2。 由于协议的流媒体特性,我如何使用SBE来流式传输可能不可避免地位于不同块中的对象?

PS。 可能的方法是再创建一个缓冲区,其大小需要保存消息并将两个块复制到其中,但这对我来说似乎效率低下。 感谢

0 个答案:

没有答案