尝试记录通道ID进行调试时:

@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
    // TODO: Investigate negative id
    LOGGER.info("Established Connection with = {}, Channel Id = {}", ctx
            .channel().remoteAddress(), ctx.channel().id());
}


我得到以下内容:

2013-06-08 22:12:49,468 [nioEventLoopGroup-2-1] INFO  com.zeedoo.mars.server.HandshakeHandler - Established Connection with = /127.0.0.1:59236, Channel Id = -1228118933


而且我获得的几乎所有其他频道ID也都是负数,我只是想知道这是否是预期的行为?如果是这样,其背后的原理是什么?

非常感谢!

最佳答案

这是故意的。 AbstractChannel分配唯一的否定ID,或接受用户指定的肯定的唯一ID。 ID范围分开,以避免重复冲突。

10-01 03:06
查看更多