对于服务器解决方案之一,我正在使用3.2.6(我知道它的方式太旧但当前的项目限制不允许我升级到接下来的两个月)。我无法控制客户。
我们在管道中有一个framedecoder来处理具有标题和正文的自定义消息。其中一个标题字段包含正文的长度。对于特定消息,我得到1076字节的大小。但是在获取消息时,我总是得到1024个字节(readableBytes()),因此解码器失败。
我用wireshark检查了(用适当的解剖器检查了protcol)。客户端始终发送1076个字节并在标头上放置相同的值。所以,客户似乎没有行为不端。
我的接收缓冲区大小已设置为更高的值,如下所示在服务器引导程序上没有明显效果。
bootstrap.setOption("child.receiveBufferSize", 1*1024*1024);
只能对此特定消息一致地看到这一点,并且所有其他消息(其大小范围从100到1000字节)都可以正确处理而不会出现任何问题。
请让我知道还有什么可能导致此问题以及如何解决此问题?