У меня есть две системы, которые я бы хотел интегрировать: один, который использует полностью собственный сетевой стек, и один (в частности, Flazr), который использует Netty. Я хочу проксировать RTMP Flazr Netty через наш собственный HTTP-стек, чтобы получить систему, которая говорит RTMPT.Реализация пользовательского Netty ServerChannel
Для этого мне нужен объект Netty, который действует как сокет, но сам позволяет мне выполнять все «низкоуровневые» вещи - в основном просто обертывать данные в HTTP и передавать его в наш пользовательский сетевой стек. Другими словами, я не хочу, чтобы Netty управляла любыми сокетами для меня - я хочу вставить свои собственные вещи между сокетом и Netty.
Я подозреваю, что правильный путь для этого состоит в том, чтобы расширить AbstractServerChannel и создать класс * Factory, но я не уверен, как остальные Netty ожидают, что данные будут проходить через ServerChannel.
Мой заказ ServerChannel должны быть в состоянии:
Уведомить Нетти, когда новый клиент подключается через нашу существующую систему HTTP
Push-данные до Нетти, когда он прибывает
Опрос о новых сообщениях от Netty по просьбе клиента
Очистка состояния Netty, когда времена HTTP сессии из (или поток RTMP закрыт чисто)
Любые указатели о том, как ServerChannel, ServerChannelFactory должны быть реализованы? Я обнаружил, что javadocs не хватает в этой области.
Некоторые конкретные вопросы:
Как должен мой реагировать реализации на "InterestOps" -типа материал?
Является ли ServerChannel.write тем, что вызывается для сообщений, которые полностью удаляются по стеку? Что случилось с двумя разными перегрузками?
Как мне реализовать ServerChannel. (Dis) connect?
Должен ли я все еще делать все это через ServerBootstrap, или это слишком высокий уровень для этого материала?
Спасибо!
Прежде, чем кто-нибудь спросит: ДА, я хотел бы заменить наш пользовательский сетевой стек на основе Netty, но это большая инженерная задача, которую мне было бы трудно оправдать. Шаги малыша.
Я предполагаю, что это относится к netty 3.x.x, код для netty 4.x.x полностью изменится, когда дело доходит до реализации транспорта. –