graph TD
    A[CreateTCPConnection] -->|初始化| B(Bootstrap);
    B -->|设置 EventLoopGroup| C(NioEventLoopGroup);
    B -->|设置 Channel 类型| D(NioSocketChannel);
    B -->|设置 Handler| E(ClientChannelInitializer);

    E -->|初始化 ChannelPipeline| F(ChannelPipeline);
    F -->|添加 IdleStateHandler| G(IdleStateHandler);
    F -->|添加 StringEncoder| H(StringEncoder);
    F -->|添加 StringDecoder| I(StringDecoder);
    F -->|添加 NettyClientHandler| J(NettyClientHandler);

    B -->|连接到服务器| K(ChannelFuture);
    K -->|连接成功| L(Channel);
    K -->|连接失败| A;

    L -->|接收数据| F;
    F -->|数据流向| I --> J;
    L -->|发送数据| F;
    F -->|数据流向| H;

    subgraph 客户端核心组件
        A
        B
        C
        D
        E
    end

    subgraph ChannelPipeline
        F
        G
        H
        I
        J
    end

    subgraph 连接与数据流
        K
        L
    end

    J -->|处理业务逻辑| M(业务逻辑处理);
    M --> N(MQTTClient);
    M --> O(FileUtils);
    M --> P(缓存数据);
    M --> Q(定时任务);
    J --> R(断线重连);
    R --> A;