使用示例
**使用示例**
```
char MQTT_IP[] = "183.230.40.39"; /* onenet MQTT IP地址 */
int MQTT_PORT = 6002; /* onenet MQTT 端口号 */
char MQTTCLIENT_ID[] = "600324264"; /* onenet 设备ID */
char MQTTUSERNAME[] = "324875"; /* onenet 产品ID 600324264*/
char MQTTPASSWORD[] = "hT=wtearqIsmztZ=S5CN4ttqOig="; /* onenet 设备鉴权 APIKey 信息 */
char MQTT_SUB_TOPIC[] = "mqtt/sample/#";
char MQTT_PUB_TOPIC[] = "mqtt/sample/mifi";
Network network;
MQTTClient mqtt_client;
MQTTPacket_connectData connectData = MQTTPacket_connectData_initializer;
unsigned char sendBuf[128],readBuf[128];
int rc = 0,count = 0;
/*function for message arrive*/
void messageArrived(MessageData* data)
{
printf("Recv by topic:%.*s message:%.*s \n",data->topicName->lenstring.len,data->topicName->lenstring.data,data->message->payloadlen,data->message->payload);
}
NetworkInit(&network);
MQTTClientInit(&mqtt_client,&network,30000,sendBuf,sizeof(sendBuf),readBuf,sizeof(readBuf));
char* address = MQTT_IP;
if ((rc = NetworkConnect(&network, address, MQTT_PORT)) != 0)
{
printf("Return code from network connect is %d\n", rc);
}else{
printf("NetworkConnect Connected\n");
}
/**
* Version of MQTT to be used. 3 = 3.1 4 = 3.1.1
*/
connectData.MQTTVersion = 4;
connectData.clientID.cstring = MQTTCLIENT_ID;
connectData.username.cstring = MQTTUSERNAME;
connectData.password.cstring = MQTTPASSWORD;
if((rc = MQTTConnect(&mqtt_client,&connectData)) != 0)
{
printf("Return code from Mqtt connect is %d\n",rc);
}
else
{
printf("Mqtt connected\n");
}
if((rc = MQTTSubscribe(&mqtt_client,MQTT_SUB_TOPIC,2,messageArrived)) != 0)
{
printf("Return code from Mqtt subcribe is %d\n",rc);
}
message.qos = 1;
message.retained = 0;
message.payload = payload;
sprintf(payload, "message number %d", count);
message.payloadlen = strlen(payload);
if ((rc = MQTTPublish(&mqtt_client, MQTT_PUB_TOPIC, &message)) != 0)
printf("Return code from MQTT publish is %d\n", rc);
MQTTDisconnect(&client)
```