Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[paho-dev] Publish does not appear in Broker

Hi,

I'm using the embedded C/C++ variant of the PAHO-project out of a microcontroller. My Problem: although the data are sent (can be verified with WireShark), a broker these data sent to does not recognise them and does not show the related data. This was testedwith HiveMQ and BevyWise MQTTRoute.

This is what I'm doing to create and send a message (pseudo-code due to some microcontroller-specific function calls):

   MQTTSNPacket_connectData data="">
   int                      rc=0,payloadlen,len;
   unsigned char            buf[MAX_BUFLEN+1];
   MQTTSN_topicid           topic;
   char                     payload[200+1];
   char                     id[200+1];

--> open a TCP/IP conection to the broker here

   data.clientID.cstring=(char*)m_machineID->c_str(); // get identifier from std::string
   data.cleansession=1;
   len = MQTTSNSerialize_connect(buf,MAX_BUFLEN,&data);

   topic.data.long_.name=(char*)topicData->c_str(); // get the topic data
   topic.data.long_.len=strlen(topic.data.long_.name);
   strncpy(payload,payData->c_str(),200); // get the data to be sent
   payloadlen=strlen(payload);

   len+=MQTTSNSerialize_publish(buf+len,MAX_BUFLEN-len,0,3,0,0,topic,(unsigned char*)payload,payloadlen);
   // here the fourth parameter has to be "3", when setting it to "0", the topic does not become part
   // of the data in "buf"

   len+=MQTTSNSerialize_disconnect(buf+len,MAX_BUFLEN-len,200);

--> send the data in "buf" with the length "len" here - this is successful
--> close the TCP/IP connection to the broker here

Any idea what I'm doing wrong here?

Thanks!


Back to the top