ChannelInboundMessageHandlerAdapter找不到符号。

3

我想基于这个示例制作一个简单的聊天程序。

import io.netty.channel.ChannelHandlerContext;

public class ChatClientHandler extends ChannelInboundMessageHandlerAdapter<String>
{

}

我遇到了“找不到符号”错误。我已经尝试将SimpleInboundHandlerAdapter更改为SimpleInboundHandlerAdapter,但结果相同。


你使用的是哪个版本的Netty?我认为接口有些变化了... - BobTheBuilder
4.0.17。我还检查了3.9.0。 - cargt3
请查看 SimpleChannelInboundHandler http://netty.io/4.0/api/io/netty/channel/SimpleChannelInboundHandler.html - BobTheBuilder
1个回答

2

在最新的版本中,ChannelInboundMessageHandlerAdapter类不可用。 如果您仍然想要使用ChannelInboundMessageHandlerAdapter,您需要将Netty版本更新到4.0.0.CR3。 在Maven中,您需要添加以下依赖项才能使用这个类。

<!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
   <dependency>
     <groupId>io.netty</groupId>
     <artifactId>netty-all</artifactId>
     <version>4.0.0.CR3</version>
</dependency>

或者更好的是,您可以升级到最新的稳定版本。目前版本为4.1.5.Final...

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.5.Final</version>
</dependency>

并且使用SimpleChannelInboundHandler的扩展,而不是像下面展示的ChannelInboundMessageHandlerAdapter:

public class ChatClientHandler extends SimpleChannelInboundHandler<String> {

@Override
protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {
    System.out.println("Te fuiste para lo de Visconti: " + msg);
}

}

请注意,在5.0版本中,channelRead0方法的名称将更改为messageReceived(ChannelHandlerContext,I)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接