Nettyチャネルを介して一連の整数をストリーミングしたいと思います。現在、私のコードでは、パイプラインにハンドラーとして整数エンコーダー/デコーダーがないため、私が理解しchannel.write(Integer.valueOf(val)
ているエラーが発生します。java.lang.IllegalArgumentException: unsupported message type: class java.lang.Integer
これは正しいです?独自の整数デコーダーを作成する必要がありますか、それとも使用できるものがありますか?このトピックに関するいくつかのガイダンスは非常に役立ちます。
2 に答える
2
はい、そうです... ChannelBufferに書き込んでから、ChannelBufferをChannelに書き込むこともできます。
何かのようなもの:
ChannelBuffer buf = ChannelBuffers.buffer(4);
buf.writeInt(Integer.valueOf(val));
channel.write(buf);
于 2012-04-12T20:22:37.260 に答える
1
うん、あなたの理解は正しい。パイプラインに適切なものがないFrameEncoder
と、Nettyは手を挙げて、に対処する方法がわからないと言いますInteger
。
既製のコンポーネントを追加する場合は、ObjectEncoderとObjectDecoderをパイプラインに追加できます。それ以外の場合は、独自のフレームエンコーダーとデコーダーを実装する必要があります。
于 2012-04-12T18:00:38.650 に答える