2012-04-12 3 views
1

Я хочу передать последовательность целых чисел по каналу Netty. Прямо сейчас, в моем коде channel.write(Integer.valueOf(val), я получаю ошибку java.lang.IllegalArgumentException: unsupported message type: class java.lang.Integer, которую я понимаю, потому что у меня нет целочисленного кодировщика/декодера в качестве обработчика в конвейере. Это верно? Должен ли я писать собственный целочисленный декодер или есть один доступный для использования? Некоторые рекомендации по этой теме будут чрезвычайно полезными.Целочисленный декодер энкодера для Netty

ответ

1

Да, ваше понимание верное. Без подходящего FrameEncoder в вашем конвейере, Нетти собирается поднять руки и сказать, что не знает, как бороться с Integer.

Если вы хотите добавить готовый компонент, вы можете добавить в свой трубопровод ObjectEncoder и ObjectDecoder. В противном случае вы захотите реализовать собственный кадровый кодировщик и декодеры.

2

Да, это так ... Вы также можете просто записать его в ChannelBuffer, а затем записать ChannelBuffer на канал.

Что-то вроде:

ChannelBuffer buf = ChannelBuffers.buffer(4); 
buf.writeInt(Integer.valueOf(val)); 
channel.write(buf); 
Смежные вопросы