gpt4 book ai didi

Netty MessageToMessageCodec 解码方法仅接收 512byte 大块响应

转载 作者:行者123 更新时间:2023-12-01 12:59:01 25 4
gpt4 key购买 nike

我正在从事 Apache PLC4X 项目,我们在该项目中使用 Netty 实现工业 PLC 协议(protocol)。一旦响应的大小超过 512 字节的限制,我们目前就会遇到解码响应的问题。

一旦响应的大小超过这 512 个字节,我们基于 MessageToMessageCodec 的协议(protocol)层实现的解码方法就只接收一个 512 字节的大 ByteBuf。紧随其后,该方法将再次调用数据包的其余部分。

如何正确处理这个问题?

最佳答案

您应该在此处使用ByteToMessageDecoder,这将允许您缓冲 数据。有关如何存档的更多详细信息,请参阅 javadoc。但基本上是这样的:

YourDecoder extends ByteToMessageDecoder {
@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
if (in.readableBytes() < 1024) {
return;
}
....
}
}

关于Netty MessageToMessageCodec 解码方法仅接收 512byte 大块响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53534645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com