Понимание Netty - отправка и получение объектов - PullRequest
0 голосов
/ 01 ноября 2018

Хотя я провожу пару часов, изучая учебные пособия, мне трудно понять Нетти. Я хочу отправить несколько разных объектов между клиентом и сервером, но я не знаю, как это сделать правильно. Кажется возможным просто сериализовать объект и отправить его таким образом, и на приемном конце он объединяется в объект этого класса. Тем не менее, я прочитал, что могут быть ограничения, касающиеся размера этого объекта. Кроме того, я не понимаю, как обрабатывать функции channelRead обработчиков, так как они также вызываются, когда объект не получен во всю длину. Могу ли я просто подождать, пока не будет вызван channelReadComplete, и снова собрать объект вместе?

Поскольку мне нужна пара различных объектов с переменной длиной, я также задаюсь вопросом, целесообразно ли и возможно ли вместо этого использовать ByteBuf и каким-то образом считывать первый байт, который содержит информацию о типе объекта и каким-то образом отбрасывает оставшиеся полученные байт в правильном типе объекта.

Буду очень признателен за помощь.

TeaDrinkerJoe

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете использовать netty Encoder для кодирования или сериализации ваших объектов в байты и написать Decoder для декодирования или десериализации полученных байтов. Вы можете иметь свои собственные реализации сериализации и десериализации, но убедитесь, что вы можете различать объекты в непрерывном потоке байтов.

...