0

尝试记录通道 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 也是负数,我只是想知道这是否是预期的行为?如果是这样,它背后的理由是什么?

非常感谢!

4

1 回答 1

1

这是故意的。AbstractChannel 要么分配一个唯一的负 id,要么接受一个用户指定的正唯一 id。ID 范围是分开的,以避免重复冲突。

于 2013-06-09T09:40:09.263 回答