Netty:netty通道的流程生命周期是什么?

时间:2018-07-25 11:14:10

标签: netty channel

我最近正在学习Netty。我遇到了一个问题,就是我在ChannelInboundHandler.channelActive方法中放入了BlockingQueue。

旨在我想从BlockingQueue中获取消息,然后将消息发送到通道,但是事实是,只有一条消息发送到服务器。 这是下面的代码:

onPress = () => {
   this.refs.button.measureInWindow((x, y, width, height) => {
     console.log("x", x, "y", y);
   })
}

render() {
  <TouchableOpacity ref="button" onPress={this.onPress}>
    ...
  </TouchableOpacity>
}

但是它不起作用,我从@Override public void channleActive(ChannelHandlerContext ctx) throws Exception{ String msg = null; while(true){ msg=msgQueue.take(); ctx.writeAndFlush(Unpooled.copiedBuffer(msg, CharsetUtil.UTF_8)); } } 方法中仅得到一个响应。 我对网络生命周期的理解是否错误?有人可以帮我解释一下吗?

1 个答案:

答案 0 :(得分:0)

您的代码将基本上在channelActive中“阻止”,这意味着EventLoop将永远无法做其他事情。这是不允许的。