Я рассматриваю возможность переноса своей реализации Java NIO на JBoss Netty, так как она обеспечивает гораздо более чистую модель, чем я реализовал. . Реализация управляет рядом клиентских подключений к компонентам по протоколу TCP с использованием собственного протокола.
Один аспект моей реализации, который я не вижу в Netty, — это возможность устанавливать произвольные тайм-ауты, которые:
- Подождите, пока некоторые данные будут прочитаны из компонента. Я знаю, что у Netty есть
ReadTimeoutHandler
, но может ли значение тайм-аута быть легко изменено/отключено компонентом, когда он проходит через конечный автомат? - Подождите, пока истечет время, чтобы я мог повторно подключиться к Компоненту (чтобы дать Компоненту время для перезапуска после отключения). Это совершенно не связано с коммуникацией и представляет собой простой тайм-аут, однако я бы хотел, чтобы «событие/исключение» тайм-аута было представлено классу обработчика так же, как и другие тайм-ауты, связанные с коммуникацией.
Можно ли реализовать этот механизм тайм-аута с помощью Netty?
Вывод. Учитывая, что мне нужно будет реализовать механизм тайм-аута, который будет работать в собственном потоке, я не собираюсь в конце концов переходить на использование Netty.