2017-06-21 33 views
0

我想將我的FullHttpRequest對象轉換爲ByteBuf對象,以避免每次在流水線上寫入內容時都使用編碼。什麼是最好的方式來做到這一點?FullHttpRequest到ByteBuff

+0

你是什麼意思「避免每次我在流水線上寫東西時使用編碼」? –

+0

我發送了很多相同的請求。爲了優化代碼,我不想在流水線上使用HttpRequestEncode類(它每次調用編碼代碼),但是一旦創建了ByteBuf並且每次都在該通道上寫入ByteBuf對象。 – Laucer

+0

爲什麼不直接複製'HttpRequestEncoder'中的代碼來從HttpRequest生成'ByteBuf'? –

回答

0

Netty使用ByteBuf以極好的性能處理消息編碼/解碼,在大多數情況下,您不需要多次編碼相同請求的開銷。如果你真的想這樣做,你可以自己啓動HttpRequestEncoder和ChannelHandlerContext,然後調用它的編碼(ChannelHandlerContext ctx,Object msg,List out)方法(你需要創建一個子類,因爲它的編碼方法是受保護的),那麼編碼的ByteBuf將被輸出到列表中。

總而言之,這樣做有點欺騙,但它可以工作。

相關問題