44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "MQTTClient.h"
|
|
|
|
#define ADDRESS "tcp://localhost:1883"
|
|
#define CLIENTID "CClientExample"
|
|
#define TOPIC "test/topic"
|
|
#define PAYLOAD "Hello MQTT"
|
|
#define QOS 1
|
|
#define TIMEOUT 10000L
|
|
|
|
int main() {
|
|
MQTTClient client;
|
|
MQTTClient_create(&client, ADDRESS, CLIENTID, MQTTCLIENT_PERSISTENCE_NONE, NULL);
|
|
|
|
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
|
|
conn_opts.keepAliveInterval = 20;
|
|
conn_opts.cleansession = 1;
|
|
|
|
int rc;
|
|
if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS) {
|
|
printf("Échec de connexion, code %d\n", rc);
|
|
return EXIT_FAILURE;
|
|
}
|
|
|
|
MQTTClient_message pubmsg = MQTTClient_message_initializer;
|
|
pubmsg.payload = (void*)PAYLOAD;
|
|
pubmsg.payloadlen = strlen(PAYLOAD);
|
|
pubmsg.qos = QOS;
|
|
pubmsg.retained = 0;
|
|
|
|
MQTTClient_deliveryToken token;
|
|
MQTTClient_publishMessage(client, TOPIC, &pubmsg, &token);
|
|
|
|
MQTTClient_waitForCompletion(client, token, TIMEOUT);
|
|
printf("Message publié !\n");
|
|
|
|
MQTTClient_disconnect(client, 10000);
|
|
MQTTClient_destroy(&client);
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|