java - 何时在netty中使用Unpooled

标签 java netty

我正在尝试弄清楚何时使用 Unpooled在内蒂.一些示例显示将 byte[] 包装在 Unpooled.wrappedBuffer 中,一些示例仅显示

ctx.writeAndFlush(bytes); // where bytes is just byte[]

是否有关于何时使用 Unpooled 的指南?

最佳答案

byte[] 传递给 Netty write 方法相当于传递未池化的 ByteBuf。我们可以在 ByteArrayEncoder 的源代码中看到这一点,它在内部调用 Unpooled#wrappedBuffer(byte[]):

@Override
protected void encode(ChannelHandlerContext ctx, byte[] msg, List<Object> out) throws Exception {
    out.add(Unpooled.wrappedBuffer(msg));
}

因此,传递 byte[] 和传递通过调用 Unpooled#wrappedBuffer(byte[]) 创建的 ByteBuf 之间没有根本区别。后者可能更明确地调用非池化缓冲区的使用,以防池化与非池化的使用在特定应用程序的上下文中很重要。

如果您需要有关池化缓冲区的更多详细信息,Netty“4.0 中的新功能和值得注意的”wiki 页面 Pooled buffers 中有很好的介绍。部分。

关于java - 何时在netty中使用Unpooled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45291211/

相关文章:

java - android点击按钮没有触发事件

java - 如果我将变量声明为其抽象父类(super class),Scala 的 @throws 注释将在 javac 中被忽略

java - SSLPeerUnverifiedException : peer not authenticated in Netty with self signed certificates on separates machines

java - 为什么建议在 ChannelOutboundHandler 中仅使用带有 [byte] 操作的堆缓冲区?

java - Netty 聊天服务器出现问题

java - 命令什么都不做

java - 带注释的时间线 GWT 中的日期和时间

Java JDialog 弄乱了 mac 上的 JMenuBar

java - 服务器不直接响应我的命令

exception - Netty 服务器绑定(bind)异常