我想在Netty频道上传输一系列整数。现在,在我的代码channel.write(Integer.valueOf(val)
中,我得到错误java.lang.IllegalArgumentException: unsupported message type: class java.lang.Integer
我理解是因为我没有任何整数编码器/解码器作为管道中的处理程序。它是否正确?我是否必须编写自己的整数解码器,或者有一个可用?围绕这个主题的一些指导将非常有帮助。
答案 0 :(得分:2)
是的情况就是这样......您也可以将它写在ChannelBuffer中,然后将ChannelBuffer写入频道。
类似的东西:
ChannelBuffer buf = ChannelBuffers.buffer(4);
buf.writeInt(Integer.valueOf(val));
channel.write(buf);
答案 1 :(得分:1)
FrameEncoder
,Netty将会举手并说它不知道如何处理Integer
。
如果您想添加现成的组件,可以在管道中添加ObjectEncoder和ObjectDecoder。否则,您将需要实现自己的帧编码器和解码器。