【发布时间】:2015-06-30 11:49:04
【问题描述】:
根据this,判断通道的可写性,我们可以调用channel.isWritable,如果是可写,则写入通道。
即:
private void writeIfPossible(Channel channel) {
while(needsToWrite && channel.isWritable()) {
channel.writeAndFlush(createMessage());
}
}
但是,这个呢:
private void writeIfPossible(ChannelHandlerContext ctx) {
Channel channel = ctx.channel();
channel.eventLoop().execute(() -> {
while (needsToWrite && channel.isWritable()) {
ctx.write(createMessage(), ctx.voidPromise());
}
ctx.flush();
});
}
这是正确的吗?我的意思是,channel.write(或ctx.write)对频道的可写性有影响吗?或者我们必须在每次写入后调用channel.flush?
谢谢。
【问题讨论】:
标签: java networking netty nio