2015-03-04 9 views
0

У меня есть канал, который должен оставаться открытым, потому что много писем написано, и я не хочу делать SSL-рукопожатие для каждой записи.Netty: гарантирован ли ChannelFuture/ChannelFutureListener «для каждого сообщения»?

Если бы я сделал это:

ChannelFuture future = channel.writeAndFlush(message1); 
channel.writeAndFlush(message2); 
future.addListener(new ChannelFutureListener(){ 

    @Override 
    public void operationComplete(ChannelFuture channelFuture) throws Exception{ 

     //check for success 
    } 
}); 

channel.writeAndFlush(message3); 

это предположение правильно, то operationComplete будет вызываться только для message1 но не для message2 ни message3?

+0

Не в TCP, потому что в TCP нет сообщений. – EJP

+0

В соответствии с принятым ответом на [это] (http://stackoverflow.com/questions/18580181/when-does-a-netty-channelfuture-for-a-write-operation-become-done?rq=1) и связанный источник 'ChannelOutboundBuffer'indeed создает« запись », содержащую данное сообщение и соответствующее будущее. – pma

+0

В сообщениях о сообщениях ничего нет. Речь идет о завершенных операциях * write *. – EJP

ответ

1

Функция ChannelFutureListener будет исполнена только для ChannelFuture, которая была возвращена записью. Каждая запись вернет другую. Так да.

Смежные вопросы