【发布时间】:2018-04-11 23:35:16
【问题描述】:
我注意到,当我为 dotnetty 运行解码器时,它包含以前的数据。我不知道为什么,但是第一个数据包(数据)通过正常,客户端出于某种原因发送的第二个数据位包括数据的两个部分,即之前处理的数据。
我已经检查了客户端,客户端并没有发送它们,服务器只是接收它们,我觉得这是DotNetty正在做的事情?
internal class JsonToPacketDecoder : ByteToMessageDecoder
{
protected override void Decode(IChannelHandlerContext context, IByteBuffer input, List<object> output)
{
Console.WriteLine("Decoding: " + input.ToString(Encoding.UTF8) + " \n");
output.Add(new IncomingPacket(JObject.Parse(input.ToString(Encoding.UTF8)).ToFlatDictionary()));
}
}
似乎input.ToString(Encoding.UTF8) 两者都包含?
【问题讨论】: