public void run()

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;
                }
            }
        }