Le passage d'un byte[]
à une méthode Netty write
équivaut à passer un ByteBuf
non groupé. Nous pouvons voir cela dans le code source pour ByteArrayEncoder
, qui appelle en interne Unpooled#wrappedBuffer(byte[])
:
@Override
protected void encode(ChannelHandlerContext ctx, byte[] msg, List<Object> out) throws Exception {
out.add(Unpooled.wrappedBuffer(msg));
}
Par conséquent, il n'y a pas de différence sous-jacente entre le passage byte[]
et passer un ByteBuf
vous créé en appelant Unpooled#wrappedBuffer(byte[])
. Ce dernier est peut-être plus explicite lorsqu'il s'agit d'appeler l'utilisation d'un tampon non-poolé, dans le cas où l'utilisation de pooled vs unpooled est significative dans le contexte d'une application particulière. Si vous avez besoin de plus de détails sur les buffers mis en pool, la page wiki de Netty "New and noteworthy in 4.0" a une bonne introduction dans la section Pooled buffers.