1. 程式人生 > >netty 5 (2)解碼器

netty 5 (2)解碼器

    在上個例子中為了解決粘包拆包問題設定解碼器,先來看看LengthFieldBasedFrameDecoder:

  

LengthFieldBasedFrameDecoder()方法是decoder實現,也是LengthFieldBasedFrameDecoder建構函式,


如圖可以看出他一共有五個入參,第一個引數為訊息的最大長度,第二個引數為起始偏移位,第三個引數是包的屬性長度,第四個引數是修正長度(自調節的閥值),第五個引數為跳過位元組數。

     再看看LengthFieldPrepender()方法,這個裡面的引數表示對訊息預編碼的長度,參考官方文件這裡指的是訊息長度不是位元組,詳細可以看  http://netty.io/5.0/api/index.html

pipeline.addLast("decoder", new StringDecoder(CharsetUtil.UTF_8));,解碼時的編碼格式(讀),pipeline.addLast("encoder", new StringEncoder(CharsetUtil.UTF_8));編碼時的編碼格式(寫)。