Добрых суток.
Возникла задача реализовать сервер для мультиплеерной игры.
Выбор пал на java + netty.io Посмотрел документацию, разобрал примеры запустив. И возникло несколько вопросов для тех кто знаком с этой библиотекой.
1. Вот для tcp создается 2 отдельных EventLoopGroup ,а именно: bossGroup ,workerGroup
При использовании конструкции:
Bootstrap b = new Bootstrap();
b.group(group)
.channel(NioDatagramChannel.class)
передается только одна группа. То есть если я захочу сделать сервер на udp то будет только 1 поток обрабатывать входящие соединения?
Или я чего то не понимаю в netty.
2. Почитав в интернете все говорят что для онлайн серверов нужен только UDP и TCP совершенно не подходит для такой задачи так ли это? Выдержит ли сервер на netty + protoBuf UDP до 1-2 клиентов. + интересна работа с бд. Как обрабатывать запросы если нельзя загружать pipeline. Ведь вызов к бд сильно затормозит обработку пакета? Слышал что можно делать очередь запросов к бд и отдельный поток. Как вообще правильнее делать?
Прошу взглянуть на мой код. Собрал по примеру сервер на udp. Который даже не запускается . проверял через nmap nmap -sU -p U:7777 127.0.0.1 выдает что порт закрыт.
https://bitbucket.org/grabedinex/multip ... ?at=master
В последний комит слил все что есть на данном этапе.
Также мне не совсем понятно как подключить ко всему этому делу protobuf. читал документацию, пробовал делать примеры. собирал .proto файл для java. Но ведь netty не подключить к C#. Или netty на стороне клиента и не нужен и как то можно просто прикрутить protobuf к C# и посылать пакеты обычными сокетами. Тогда в C# будет .proto файл для C#. Не проверял. Сможет ли тогда java десериализовать код?