in impl/src/main/java/org/apache/rocketmq/remoting/impl/netty/NettyRemotingAbstract.java [572:607]
public void run() {
LOG.info(this.name + " service started");
ChannelEventListenerGroup listener = NettyRemotingAbstract.this.channelEventListenerGroup;
while (true) {
try {
NettyChannelEvent event = this.eventQueue.poll(3000, TimeUnit.MILLISECONDS);
if (event != null && listener != null) {
RemotingChannel channel = new NettyChannelImpl(event.getChannel());
LOG.info("Dispatch received channel event, {}", event);
switch (event.getType()) {
case IDLE:
listener.onChannelIdle(channel);
break;
case CLOSE:
listener.onChannelClose(channel);
break;
case CONNECT:
listener.onChannelConnect(channel);
break;
case EXCEPTION:
listener.onChannelException(channel, event.getCause());
break;
default:
break;
}
}
} catch (Exception e) {
LOG.warn("Exception thrown when dispatching channel event", e);
break;
}
}
}