尝试记录通道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范围分开,以避免重复冲突。