Я работаю с Netty Channels и при отправке большого количества данных по каналу, я замечаю, что событие Channel.channelInterestChanged
уволено, что сразу приводит к Channel.isWritable()
, чтобы вернуть false. (Есть еще один поток, делающий Channel.write()
и этот поток не срабатывает немедленно). Мой вопрос: почему меняются интересы Канала? или, вернее, кто его меняет? Ничто в коде, который я написал (сервер или клиент), не меняет интереса.Channel.channelInterestChanged в Netty
ответ
Он изменяется, потому что вы записываете больше данных на канал, затем он может передавать в заданное время. Netty ставит в очередь данные для вас, пока не будет достигнуто какое-либо нарушение, как только он попадет. Channel.isWritable() вернет false.
Вам необходимо настроить writeBufferHighWaterMark и writeBufferLowWaterMark, если вы хотите изменить, сколько байт разрешено получать в очереди/буферизовать до того, как Channel.isWritable() вернет false.
ServerBootstrap sb = ....
sb.setOption("writeBufferHighWaterMark", ..);
sb.setOption("writeBufferLowWaterMark", ..);
В любом случае вы должны убедиться, что ваш код, который вызывает Channel.write (...) не проверяет Channel.isWritable() и только писать, если она возвращает истину. Проблема, которую вы часто наблюдаете в медленных сетях.
[1] http://netty.io/docs/stable/api/org/jboss/netty/channel/socket/nio/NioChannelConfig.html
- 1. Как поместить netty-клиента на netty-сервер
- 2. IdleStateHandler в Netty 4?
- 3. Пользовательский FrameDecoder в netty
- 4. Netty Connections в TIME_WAIT
- 5. ресурсов Утечка в Netty
- 6. Сообщение Channel.messageReceived в Netty
- 7. Буферная коррупция в netty
- 8. Channel.isWritable notofication в Netty
- 9. Блокировка в Netty 4
- 10. netty localhost
- 11. Netty ClosedChannelException
- 12. Netty - Обрамление
- 13. Netty channelRead
- 14. Netty BlockingOperationException
- 15. Netty TrafficCounter
- 16. Netty Websockets
- 17. io.netty.util.IllegalReferenceCountException: refCnt: 0 в Netty
- 18. Импорт самоподписанных сертификатов в Netty
- 19. Исключение CorruptedFrame, websockets в Netty
- 20. Netty отправить событие в сокеты
- 21. В Netty 4.0.15 исключение java.nio.channels.IllegalSelectorException
- 22. Netty ChannelBuffer в версии 4.0
- 23. ChannelInboundByteHandlerAdapter Alternative в Netty 4.0.7
- 24. Использование SSL-сертификатов в Netty
- 25. Закрытие подключения клиента в Netty
- 26. Синхронный HTTP-вызов в Netty
- 27. Миграция sendUpstream в Netty 4
- 28. java.lang.NoSuchMethodError в netty-socketio server
- 29. Multiple ChannelInboundHandlerAdapter в Netty pipleline
- 30. Отправка байтового массива в Netty
, если канал не доступен для записи, что мы должны делать? – WorM
Остановить запись и продолжить, как только перезаписывается снова –
есть способ определить размер изменения размера окна на удаленном, используя netty? если есть, можем ли мы что-либо сделать на уровне приложения, чтобы отреагировать на это? – WorM