Сервер на базе Netty в контейнере сервлетов - PullRequest
3 голосов
/ 05 января 2012

У меня есть сетевой сервер, который был реализован с использованием Jboss Netty.Он обслуживает приложение как по необработанному TCP, так и по HTTP и работает как отдельный процесс.Клиенты, подключенные по протоколу TCP, могут передавать данные клиентам, подключенным по HTTP, и наоборот.

Теперь я должен заставить его работать в среде сервлета.Предоставляет ли netty стандартный способ сделать это или что мне нужно написать свой адаптер?Что я могу сделать с транспортом TCP?я могу включить его в контейнер сервлета?

этот является похожим вопросом, но без четкого ответа

1 Ответ

2 голосов
/ 08 января 2012

Вы можете создать HttpTunnelingServlet, который ссылается на вашу существующую реализацию Netty.См. Документацию API org.jboss.netty.channel.socket.http .

В этом документе для настройки Netty используется bean-компонент Spring.Но это должно быть достаточно легко, чтобы переместить вашу конфигурацию и настройку на ServletListener.Я не уверен на 100%, будет ли это работать, так как программа установки должна подключиться к LocalAddress, указанному в конфигурации сервлета.Проблема может заключаться в том, что адрес недействителен до запуска сервлета, что, как мне кажется, происходит после запуска слушателей.Другой вариант заключается в том, чтобы использовать sublcass HttpTunnelingServlet и добавить к реализации init().

Какой бы метод вы ни использовали, вам все равно придется настроить, а также запустить каналы TCP и т. Д., Как вы делали раньше.

...