Согласно this, чтобы определить Writability канала мы можем назвать channel.isWritable
, а затем записать в канал, если он был Writable.Нетти - запись в канал, пока не будет доступен для записи
т.е:
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
после каждой записи?
Спасибо.
спасибо. см. мой ответ. – FaNaJ