我遇到了有关在频道注册时发送数据包的问题(客户端 - >服务器)。 为了进一步测试,如果我在注册后发送数据包,我可以发送数据包。 相反的方式(服务器 - >客户端)完全正常。 注册功能:
myVar
它还会遇到过滤器链中的编码器:
@Override
public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
ctx.channel().write(new byte[] {0x00});
}
因此服务器不接收上述数据包 - 因此, 我调试了以查看是否触发了channelRead事件而它没有。 (我的解码类也没有解码数据)
任何假设?
答案 0 :(得分:1)
channelRegistered
。这并不意味着它已经准备好发送数据了,该频道还没有打开套接字。
你想要channelActive
,它在频道处于活动状态时被调用,即准备好发送和接收数据。