在没有ChannelFuture的情况下写入Netty频道

Eir*_*iel 4 java netty

是否可以在不创建不必要的ChannelFuture的情况下写入Netty频道?(不为GC生成不必要的对象......)

tru*_*tin 6

如果你真的希望你不想创建一个ChannelFuture,你可以为Netty 3做这个:

Channels.write(ctx, Channels.succeededFuture(channel), message);
Run Code Online (Sandbox Code Playgroud)

Channels.succeededFuture(..)返回一个通道本地单例对象.但是,您永远不应该为返回的未来添加侦听器,因为它已经完成.

在Netty 4中,您可以使用void promise:

ctx.write(msg, ctx.voidPromise());
Run Code Online (Sandbox Code Playgroud)

ChannelHandlerContext.voidPromise()返回一个永远不会满足的伪单例承诺.添加侦听器或等待其完成等操作将立即失败.