Home / Class/ MqttHeartBeatBrokerHandler Class — netty Architecture

MqttHeartBeatBrokerHandler Class — netty Architecture

Architecture documentation for the MqttHeartBeatBrokerHandler class in MqttHeartBeatBrokerHandler.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  fef21bb2_cd7b_3e63_44fc_7bd83af8b9b8["MqttHeartBeatBrokerHandler"]
  5ffaee7d_2224_7a7a_a03f_bb392bdfca8f["MqttHeartBeatBrokerHandler.java"]
  fef21bb2_cd7b_3e63_44fc_7bd83af8b9b8 -->|defined in| 5ffaee7d_2224_7a7a_a03f_bb392bdfca8f
  3f2ef8c4_e36b_ae6c_fc62_2b6b13b38a5e["MqttHeartBeatBrokerHandler()"]
  fef21bb2_cd7b_3e63_44fc_7bd83af8b9b8 -->|method| 3f2ef8c4_e36b_ae6c_fc62_2b6b13b38a5e
  95c3acb0_49ad_0c82_8d23_9ac5ee200095["channelRead()"]
  fef21bb2_cd7b_3e63_44fc_7bd83af8b9b8 -->|method| 95c3acb0_49ad_0c82_8d23_9ac5ee200095
  4588de81_540f_9b17_1895_cacff91abda9["userEventTriggered()"]
  fef21bb2_cd7b_3e63_44fc_7bd83af8b9b8 -->|method| 4588de81_540f_9b17_1895_cacff91abda9
  a9b97fa8_9ff1_ae28_7130_642b92e28c39["exceptionCaught()"]
  fef21bb2_cd7b_3e63_44fc_7bd83af8b9b8 -->|method| a9b97fa8_9ff1_ae28_7130_642b92e28c39

Relationship Graph

Source Code

example/src/main/java/io/netty/example/mqtt/heartBeat/MqttHeartBeatBrokerHandler.java lines 32–82

@Sharable
public final class MqttHeartBeatBrokerHandler extends ChannelInboundHandlerAdapter {

    public static final MqttHeartBeatBrokerHandler INSTANCE = new MqttHeartBeatBrokerHandler();

    private MqttHeartBeatBrokerHandler() {
    }

    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        MqttMessage mqttMessage = (MqttMessage) msg;
        System.out.println("Received MQTT message: " + mqttMessage);
        switch (mqttMessage.fixedHeader().messageType()) {
        case CONNECT:
            MqttFixedHeader connackFixedHeader =
                    new MqttFixedHeader(MqttMessageType.CONNACK, false, MqttQoS.AT_MOST_ONCE, false, 0);
            MqttConnAckVariableHeader mqttConnAckVariableHeader =
                    new MqttConnAckVariableHeader(MqttConnectReturnCode.CONNECTION_ACCEPTED, false);
            MqttConnAckMessage connack = new MqttConnAckMessage(connackFixedHeader, mqttConnAckVariableHeader);
            ctx.writeAndFlush(connack);
            break;
        case PINGREQ:
            MqttFixedHeader pingreqFixedHeader = new MqttFixedHeader(MqttMessageType.PINGRESP, false,
                                                                     MqttQoS.AT_MOST_ONCE, false, 0);
            MqttMessage pingResp = new MqttMessage(pingreqFixedHeader);
            ctx.writeAndFlush(pingResp);
            break;
        case DISCONNECT:
            ctx.close();
            break;
        default:
            System.out.println("Unexpected message type: " + mqttMessage.fixedHeader().messageType());
            ReferenceCountUtil.release(msg);
            ctx.close();
        }
    }

    @Override
    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
        System.out.println("Channel heartBeat lost");
        if (evt instanceof IdleStateEvent && IdleState.READER_IDLE == ((IdleStateEvent) evt).state()) {
            ctx.close();
        }
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        cause.printStackTrace();
        ctx.close();
    }
}

Frequently Asked Questions

What is the MqttHeartBeatBrokerHandler class?
MqttHeartBeatBrokerHandler is a class in the netty codebase, defined in example/src/main/java/io/netty/example/mqtt/heartBeat/MqttHeartBeatBrokerHandler.java.
Where is MqttHeartBeatBrokerHandler defined?
MqttHeartBeatBrokerHandler is defined in example/src/main/java/io/netty/example/mqtt/heartBeat/MqttHeartBeatBrokerHandler.java at line 32.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free