-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "MQTTClient.h"#define ADDRESS "tcp://sdmn79a.mqtt.iot.gz.baidubce.com:1883"
#define CLIENTID "MyMonitor_Sub_Any"
/// MUST Be Subcribed by the different Clients Belonged in the Same Shadow
#define TOPIC "$baidu/iot/shadow/MyMonitor/update/accepted"
//#define PAYLOAD "Hello World!"
#define USER "sdmn79a/MyMonitor"
#define PWD "xxxxxxxxx"
#define QOS 1
#define TIMEOUT 10000Lvolatile MQTTClient_deliveryToken deliveredtoken;
void delivered(void *context, MQTTClient_deliveryToken dt)
{
printf("Message with token value %d delivery confirmed\n", dt);
deliveredtoken = dt;
}int msgarrvd(void *context, char *topicName, int topicLen, MQTTClient_message *message)
{
int i;
char* payloadptr;printf("Message arrived\n");
printf(" topic: %s\n", topicName);
printf(" message: ");payloadptr = message->payload;
for(i=0; i<message->payloadlen; i++)
{
putchar(*payloadptr++);
}
putchar('\n');
MQTTClient_freeMessage(&message);
MQTTClient_free(topicName);
return 1;
}void connlost(void *context, char *cause)
{
printf("\nConnection lost\n");
printf(" cause: %s\n", cause);
}int main(int argc, char* argv[])
{
MQTTClient client;
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
int rc;
int ch;MQTTClient_create(&client, ADDRESS, CLIENTID,
MQTTCLIENT_PERSISTENCE_NONE, NULL);
conn_opts.keepAliveInterval = 20;
conn_opts.cleansession = 1;
conn_opts.username = USER;
conn_opts.password = PWD;
conn_opts.MQTTVersion = MQTTVERSION_3_1_1;MQTTClient_setCallbacks(client, NULL, connlost, msgarrvd, delivered);
if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
{
printf("Failed to connect, return code %d\n", rc);
exit(EXIT_FAILURE);
}
printf("Subscribing to topic %s\nfor client %s using QoS%d\n\n"
"Press Q<Enter> to quit\n\n", TOPIC, CLIENTID, QOS);
MQTTClient_subscribe(client, TOPIC, QOS);do
{
ch = getchar();
} while(ch!='Q' && ch != 'q');MQTTClient_unsubscribe(client, TOPIC);
MQTTClient_disconnect(client, 10000);
MQTTClient_destroy(&client);
return rc;
} -
Connect Shadow : MyMonitor with MQTT.fx
-

-

-
Run MQTTClient_subscribe
-

-
Trigger $baidu/iot/shadow/MyMonitor/update via MQTT.fx
-

-

-

百度IOT Hub (九) Paho C Client Subscribe Operation without SSL
最新推荐文章于 2023-02-17 17:11:47 发布
本文展示了一个使用MQTT协议的C语言程序示例,该程序作为客户端订阅特定主题,接收并处理从服务器发送的消息。程序详细展示了如何创建客户端,设置连接选项,定义回调函数以及订阅和接收消息的过程。
6766

被折叠的 条评论
为什么被折叠?



