This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3220SF:多 MQTT 连接。

Guru**** 2383980 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1341122/cc3220sf-multi-mqtt-connections

器件型号:CC3220SF

您好!

我想同时连接到多个 MQTT 代理。 我从2 MQTT 连接开始。 有办法实现这一点吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、它由 MQTT 堆栈(来自 CC32XX SDK)提供支持。

    您将需要创建 2个客户端实例。

    如果您正在通过 mqtt_if 使用、由于模块当前仅支持一个实例、您将需要一些更新、例如、mMQTTContext 应进行扩展(作为列表数组)、而 ContextThread 只应使用一个实例。

    在这种情况下、您最好将 MQTT_IF_Connect 用作连接 MQTT 堆栈的参考。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    内部使用了多个变量、需要更改为数组、函数需要知道要处理哪个客户端、因此我必须为 不同函数的每个变量传递客户端数组索引。

    我必须在提供的库中进行更改、是否没有可以在 MQTT 中启用多连接的此类设置或宏?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    MQTT 库应该能够支持多个连接。

    作为应用程序代码(尝试简化库接口)的 MQTT_IF 仅支持一个实例。

    因此、您的选项包括:

    1.您可以移除 MQTT_IF 并直接从应用程序连接到 MQTTClient 库。

    2.您可以更新 MQTT_IF 以支持多个实例(正如您所说的,需要更改几个变量来支持 MQTT 连接数组)。

    3.还可以使用任何外部 MQTT 栈(支持多个连接)并将其绑定到 simplelink TCP 套接字。