我正在考虑将 mqtt 客户端实现从 IDFv4 移植到 IDFv5,但我遇到了一个似乎是大问题的问题。
以前*,可以在初始化客户端时设置“用户上下文”指针,然后该指针将在每个事件中交还。这遵循了 C 中事件驱动库的典型模式,其中调用者可以自由地将任何上下文与会话相关联,并使其在处理事件时可访问。
在 IDFv5** 中,我找不到对此的任何支持。更改/删除库的这样一个基本方面真的是故意的吗?如果是这样的话,我正在考虑对客户端代码进行重大重写。从它的外观来看,我将不得不建立和维护一个外部 esp_mqtt_client_handle_t 到用户上下文数据结构,以实现旧的 `user_context` 字段所做的。显然,我宁愿不必那样做。