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.

[参考译文] MQTT 客户端-客户端 ID 有问题

Guru**** 2826855 points

Other Parts Discussed in Thread: CC3200SDK, CC3200

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/610499/mqtt-client---problem-with-clientid

Thread 中讨论的其他器件:CC3200SDKCC3200

您好!

在 MQTT 应用中、当我将 ClientID 更改为 NULL 时、我的所有代码都在 CC3200SDK_1.3.0中冻结、但在旧版本的 SDK 中也是如此、即 CC3200SDK_1.2.0

为什么我要设置为 NULL 原因是-我有2个 CC3200 LP、两个都在同一台服务器上运行。如果我为这两个客户端分配相同的 ClientID、即"user1"、则一个将正常工作、2个将断开连接、反之亦然、因为两个客户端都具有相同的 ID。 我想使其成为动态或为空,以便两者可以在同一台服务器上同时工作。

如上所述、NULL ClientID 在旧 SDK 中运行良好、但在新 SDK 中不工作。每次代码中的 ClientID 都不想更改。  

connect_config usr_connect_config[]=
{
{
{
{
SL_MQTT_NETCONN_URL、
服务器地址、
PORT_NUMBER、
0、
0、
0、
null
}、
服务器模式、
对、
}、
null、
"用户1"、 
null、
null、
对、
keep_alive_timer、
{MQTT_Recv、SL_MqttEvt、SL_MqttDisconnect}、
Topic_count、
{TOPIC1、topic2、TOPIC3}、
{QOS2、QOS2、QOS2}、
{will _topic、will _MSG、will _QoS、will _retain}、
否
}
}; 

此致、

Shashank

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

    您可以将客户端 ID 基于每个 LP 的唯一 MAC 地址。

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

    您好、Kobi、

    感谢您的回复。

    您能不能告诉我该过程、我如何获取每个 LP 的 Mac 地址。

    此致、
    Shashank

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

    如何获取 LP 的 Mac 地址?
    此外、我希望在代码开始时运行此代码。 因此、它可以设置客户端 ID、然后进行通信。

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

    您好、Kobi、

    下面的代码我正在使用获取器件的 Mac 地址、但无法获取。 他们的代码中有什么问题吗?

    char * getmacaddress()
    {
    int i;
    
    unsigned char macAddressVal[sl_MAC_ADDR_LEN];
    unsigned char macAddressLen = sl_MAC_ADDR_LEN;
    
    sl_NetCfgGet (sl_MAC_ADDRE_Get、char、&sprAddressLen、NULL (unsigned char *) macAddressVal);sl [i+
    
    、
    
    
    
    
    I = 18;t、macAddress+、I = 18;[i+、char +、I = 18、macAddress+、char、I、char、I、I、I = 18、macAddress+
    (char *) macAddressPart);
    strcat (macAddressFull、":");
    }
    
    macAddressFull[17]='\0';//将最后一个:替换为零终止
    
    
    返回 macAddressFull;
    }
    

    谢谢、此致、

    Shashank