非常に単純なソケット サーバーを実装しようとしています。改行またはその他の区切り記号で区切られたいくつかのメッセージを読む必要があります。
このドキュメントによると: http://netty.io/4.0/api/io/netty/handler/codec/string/StringDecoder.htmlおよびhttp://netty.io/4.0/api/io/netty/handler/codec /DelimiterBasedFrameDecoder.html
チャネル初期化子のこのコード
ChannelInitializer<SocketChannel> channelInitializer = new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast("frameDecoder", new DelimiterBasedFrameDecoder(Delimiters.lineDelimiter()));
ch.pipeline().addLast("stringDecoder", new StringDecoder(CharsetUtil.UTF_8));
// Encoder
ch.pipeline().addLast("stringEncoder", new StringEncoder(CharsetUtil.UTF_8));
}
};
トリックを行う必要があります。
ただし、指定されたパラメーターで動作するデコーダーとエンコーダーのいずれにも適したコンストラクターはありません。最初のパラメーターとして何らかの整数と Byte 配列が必要です。stringDecoder のみが問題ないようです。
ここで何が欠けていますか?