当我在搜索“解析nodejs二进制流”时,我看到很多例子都是当发出的数据刚好适合预期返回大小时,但是没有一个示例说明如何处理下一个块包含第一结构的剩余字节和新标题的情况。
当我期望像以下内容时,“正确”的解析二进制流方式是什么:
记录长度:4个字节 数据1:8个字节 数据2:8个字节 4字节记录[(记录长度-16)*4];
数据将以各种大小的块的形式出现。但是是否有一种方法可以调用data.readUInt32(0)并等待块填满?我不想编写一个发出字节和接收状态机的管道阶段,那样似乎非常不对。
这必须得解决,因为这是一个非常基本的概念。
能帮忙吗?
谢谢, PT
当我期望像以下内容时,“正确”的解析二进制流方式是什么:
记录长度:4个字节 数据1:8个字节 数据2:8个字节 4字节记录[(记录长度-16)*4];
数据将以各种大小的块的形式出现。但是是否有一种方法可以调用data.readUInt32(0)并等待块填满?我不想编写一个发出字节和接收状态机的管道阶段,那样似乎非常不对。
这必须得解决,因为这是一个非常基本的概念。
能帮忙吗?
谢谢, PT
scramjet
- 但是实现有点棘手。您可以获取源代码并查看我如何为AsyncGenerator
实现from
,然后在没有框架的情况下重新实现它。而且它只有3个依赖项,因此膨胀很小。 - Michał Karpacki