Netty - 无法在注册时写入频道(channelRegistered事件)

时间:2016-12-24 15:26:01

标签: java server client netty channel

我遇到了有关在频道注册时发送数据包的问题(客户端 - >服务器)。 为了进一步测试,如果我在注册后发送数据包,我可以发送数据包。 相反的方式(服务器 - >客户端)完全正常。 注册功能:

myVar

它还会遇到过滤器链中的编码器:

@Override
public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
    ctx.channel().write(new byte[] {0x00});
}

因此服务器不接收上述数据包 - 因此, 我调试了以查看是否触发了channelRead事件而它没有。 (我的解码类也没有解码数据)

任何假设?

1 个答案:

答案 0 :(得分:1)

当频道注册到EventLoop时,会调用

channelRegistered。这并不意味着它已经准备好发送数据了,该频道还没有打开套接字。 你想要channelActive,它在频道处于活动状态时被调用,即准备好发送和接收数据。