Возможно, уже слишком поздно, но я чувствую себя доброжелательно, поэтому на случай, если у кого-то возникнет похожий вопрос:
Об инфраструктуре
Нетти просто поможет вам с общим кодом котельной плитыэто относится к настройке сервера (сервер любого типа , поскольку Netty "независим от транспорта", поэтому вы можете реализовать его для использования TCP / IP, UDP и т. д.).Существует нет предопределенного сетевого протокола, который вы должны придерживаться для связи с вашим сервером (который работает с использованием Netty).То, что эффективно определяет ваш протокол, это ваш конвейер.Следовательно, с точки зрения клиента то, используете ли вы Netty на стороне сервера, не имеет значения.
О вашей проблеме
В вашем конвейере (при условии, что это ваш сервер)pipe) вы определили кодировщики и декодеры protobuf.Они сделают следующее:
- Сервер -> Клиент: предположим, что отправляемый сервером объект является протобуфом
MessageLite
, декодируйте его в байты и отправьте эти байтыпо сети - Клиент -> Сервер: предположим, что клиент отправляет серию байтов, которые можно декодировать в объект protobuf, и декодируйте его, если это возможно
если вы использовали Java-клиент для тестирования вашего сервера и ваш сервер работает, то вы почти закончили работу с вашим сервером.Все, что вам нужно сделать сейчас, это использовать библиотеку C #, которая преобразует объекты в сообщения protobuf, подключается к вашему серверу Java и отправляет байты.
Преобразование объектов в C # в сообщения protobuf должно быть простым: useодна из библиотек protobuf C # из сторонних инструментов на странице проекта protobuf, чтобы сделать это.Подключение к вашему серверу и отправка байтов сообщения protobuf - это то, что вам нужно реализовать самостоятельно.По сути, это не должно быть намного сложнее, чем создание сокета для конечной точки вашего сервера, сериализация сообщения protobuf в байты и отправка этих байтов через сокет на сервер.Надеемся, что это ответ на ваш вопрос.
Подводя итог: Netty - это среда Java, которую вы использовали для реализации сервера.Google protobuf - это фреймворк, который вы использовали для определения ваших сообщений (точнее контракта (ов) ).На этом этапе обязательным условием для клиента для связи с вашим сервером является то, что клиент отправляет сообщения protobuf.Нетти не имеет значения для клиента.