1

Nettyチャネルを介して一連の整数をストリーミングしたいと思います。現在、私のコードでは、パイプラインにハンドラーとして整数エンコーダー/デコーダーがないため、私が理解しchannel.write(Integer.valueOf(val)ているエラーが発生します。java.lang.IllegalArgumentException: unsupported message type: class java.lang.Integerこれは正しいです?独自の整数デコーダーを作成する必要がありますか、それとも使用できるものがありますか?このトピックに関するいくつかのガイダンスは非常に役立ちます。

4

2 に答える 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

既製のコンポーネントを追加する場合は、ObjectEncoderObjectDecoderをパイプラインに追加できます。それ以外の場合は、独自のフレームエンコーダーとデコーダーを実装する必要があります。

于 2012-04-12T18:00:38.650 に答える