0
我已经创建了一个名为的MessageHandler类:的messageReceived不叫
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(
new LoggingHandler(LogLevel.INFO),
new GameServerHandler());
ch.pipeline().addLast("protobufHandler", new MessageHandler());
}
另外,我加了的messageReceiver功能,如文件说,因为它给了我一个错误,我不能覆盖它:
public class MessageHandler extends SimpleChannelInboundHandler<Object> {
// @Override
public void messageReceived(ChannelHandlerContext ctx, Object msg) {
System.out.println(msg);
// super.messageReceived(ctx, msg);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
cause.printStackTrace();
ctx.close();
}
@Override
protected void channelRead0(ChannelHandlerContext arg0, Object arg1)
throws Exception {
// TODO Auto-generated method stub
}
}
不过的messageReceived函数没有被调用:
INFO: [id: 0xbb603bfd, /127.0.0.1:54206 => /127.0.0.1:5000] ACTIVE
Oct 07, 2014 10:48:49 PM io.netty.handler.logging.LoggingHandler logMessage
INFO: [id: 0xbf711f5f, /127.0.0.1:54205 => /127.0.0.1:5000] RECEIVED(383B)
// Message printed by the Netty logger, not from my function.
该死的,谢谢。我现在在网站上找到了该笔记。 – Kenny 2014-10-08 10:31:21
btw不应该你的IDE抓住这种东西? – 2014-10-08 13:58:53
我使用的是netty 5.扩展'SimpleChannelInboundHandler',它要求我实现抽象的'messageReceived'。也没有方法'channelRead0',但有一个'channelRead',我可以覆盖。 'messageReceived'永远不会被调用,但'channelRead'是。我的代码正在工作,它正在做我需要的东西,但这并不适合我。任何人都可以看到实际发生的事情吗? – 2015-11-26 09:24:10