我试着根据这个例子做一个简单的聊天程序。
import io.netty.channel.ChannelHandlerContext;
public class ChatClientHandler extends ChannelInboundMessageHandlerAdapter<String>
{
}
我得到cannot find symbol
错误。我也尝试将SimpleInboundHandlerAdapter
更改为SimpleInboundHandlerAdapter
,但结果相同。
类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。最后…
<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);
}
}
请记住,channelRead0方法名称将在5.0版本中重命名为messagerreceived (ChannelHandlerContext, I)