ESP32接入EMQX

在使用ESP32进行接入的时候(使用ESP-IDF),心跳包是自行编写还是有EMQX固定的心跳包格式?在运行10-15分钟就会出现断开连接的报错。

我建议你使用一个可以在 ESP32 上运行的 MQTT 客户端 SDK 来帮你处理这些问题。在发送连接报文的时候配置 Keepalive = 60s

配置完Keepalive之后它就会自动发送心跳包了吗?还是说我得自己publish内容到 emqx里面的心跳包主题里?

建议看下 mqtt 协议文档。
心跳是没有主题的,只是一个 PINGREQ 报文,表示客户端告诉 Broker还活着。
一般来说设置了 keepalive 之后,mqtt sdk 底层会自己处理好,这也是建议使用 MQTT SDK 客户端的原因之一。