IMessageDecoder.FinishDecode(...)何时执行?

Mar 3, 2015 at 9:55 AM
IMessageDecoder.Decode(...)执行后不会自动执行IMessageDecoder.FinishDecode(...)么?
Coordinator
Mar 4, 2015 at 7:25 AM
IMessageDecoder.FinishDecode(...)在session结束的时候执行,是在ProtocolCodecFilter.SessionClosed(...)里调用。
一般情况下FinishDecode(...)没有做什么操作,它主要是用在一些无法确定消息内容长度的协议中,以处理Decode(...)中没有处理完的剩余数据。
例如HTTP协议,如果响应头没有指定Content-Length,就无法判断响应长度,直到响应流结束,这时就需要FinishDecode(...)来辅助。
Marked as answer by sunwayking on 9/10/2015 at 7:41 PM