Netty:Netty中渠道的流程生命周期是什么?
我最近在学习网络。我遇到了一个问题,那就是我在ChannelInboundHandler.channelActive方法中放置了一个BlockingQueue 针对这一点,我希望从BlockingQueue获取消息,然后将消息发送到通道,但事实上,只有一条消息发送到服务器。 代码如下:Netty:Netty中渠道的流程生命周期是什么?,netty,channel,Netty,Channel,我最近在学习网络。我遇到了一个问题,那就是我在ChannelInboundHandler.channelActive方法中放置了一个BlockingQueue 针对这一点,我希望从BlockingQueue获取消息,然后将消息发送到通道,但事实上,只有一条消息发送到服务器。 代码如下: @Override public void channleActive(ChannelHandlerContext ctx) throws Exception{ String msg = null;
@Override
public void channleActive(ChannelHandlerContext ctx) throws Exception{
String msg = null;
while(true){
msg=msgQueue.take();
ctx.writeAndFlush(Unpooled.copiedBuffer(msg, CharsetUtil.UTF_8));
}
}
但是它不起作用,我从channelRead()方法中只得到一个响应。
我对netty生命周期的理解是错误的吗?有人能帮我解释一下吗?您的代码基本上会在channelActive
中“阻塞”,这意味着EventLoop
将无法执行任何其他操作。这是不允许的。谢谢!但是我仍然不知道在频道中写消息的整个过程,你知道整个过程吗?例如,对于客户端来说,它可能是connect->channelActive->channelRead->readComplete(可能不对)。就像这样。谢谢!