MQTTClient_publish.c
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2012, 2020 IBM Corp.
3  *
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v2.0
6  * and Eclipse Distribution License v1.0 which accompany this distribution.
7  *
8  * The Eclipse Public License is available at
9  * https://www.eclipse.org/legal/epl-2.0/
10  * and the Eclipse Distribution License is available at
11  * http://www.eclipse.org/org/documents/edl-v10.php.
12  *
13  * Contributors:
14  * Ian Craggs - initial contribution
15  *******************************************************************************/
16 
17 #include <stdio.h>
18 #include <stdlib.h>
19 #include <string.h>
20 #include "MQTTClient.h"
21 
22 #define ADDRESS "tcp://mqtt.eclipse.org:1883"
23 #define CLIENTID "ExampleClientPub"
24 #define TOPIC "MQTT Examples"
25 #define PAYLOAD "Hello World!"
26 #define QOS 1
27 #define TIMEOUT 10000L
28 
29 int main(int argc, char* argv[])
30 {
35  int rc;
36 
37  if ((rc = MQTTClient_create(&client, ADDRESS, CLIENTID,
39  {
40  printf("Failed to create client, return code %d\n", rc);
41  exit(EXIT_FAILURE);
42  }
43 
44  conn_opts.keepAliveInterval = 20;
45  conn_opts.cleansession = 1;
46  if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
47  {
48  printf("Failed to connect, return code %d\n", rc);
49  exit(EXIT_FAILURE);
50  }
51 
52  pubmsg.payload = PAYLOAD;
53  pubmsg.payloadlen = (int)strlen(PAYLOAD);
54  pubmsg.qos = QOS;
55  pubmsg.retained = 0;
56  if ((rc = MQTTClient_publishMessage(client, TOPIC, &pubmsg, &token)) != MQTTCLIENT_SUCCESS)
57  {
58  printf("Failed to publish message, return code %d\n", rc);
59  exit(EXIT_FAILURE);
60  }
61 
62  printf("Waiting for up to %d seconds for publication of %s\n"
63  "on topic %s for client with ClientID: %s\n",
64  (int)(TIMEOUT/1000), PAYLOAD, TOPIC, CLIENTID);
65  rc = MQTTClient_waitForCompletion(client, token, TIMEOUT);
66  printf("Message with delivery token %d delivered\n", token);
67 
68  if ((rc = MQTTClient_disconnect(client, 10000)) != MQTTCLIENT_SUCCESS)
69  printf("Failed to disconnect, return code %d\n", rc);
70  MQTTClient_destroy(&client);
71  return rc;
72 }
int main(int argc, char *argv[])
int MQTTClient_waitForCompletion(MQTTClient handle, MQTTClient_deliveryToken mdt, unsigned long timeout)
Definition: MQTTClient.c:2772
#define MQTTCLIENT_SUCCESS
Definition: MQTTClient.h:131
int MQTTClient_connect(MQTTClient handle, MQTTClient_connectOptions *options)
Definition: MQTTClient.c:1644
int MQTTClient_disconnect(MQTTClient handle, int timeout)
Definition: MQTTClient.c:1908
#define MQTTClient_message_initializer
Definition: MQTTClient.h:327
#define ADDRESS
MQTTAsync_connectOptions conn_opts
Definition: paho_c_sub.c:191
#define TIMEOUT
int MQTTClient_publishMessage(MQTTClient handle, const char *topicName, MQTTClient_message *message, MQTTClient_deliveryToken *deliveryToken)
Definition: MQTTClient.c:2432
void * MQTTClient
Definition: MQTTClient.h:246
void MQTTClient_destroy(MQTTClient *handle)
Definition: MQTTClient.c:556
#define TOPIC
MQTTAsync client
Definition: test6.c:276
#define PAYLOAD
#define CLIENTID
#define MQTTCLIENT_PERSISTENCE_NONE
#define QOS
#define MQTTClient_connectOptions_initializer
Definition: MQTTClient.h:953
int MQTTClient_deliveryToken
Definition: MQTTClient.h:257
enum MQTTReasonCodes rc
Definition: test10.c:1112
int MQTTClient_create(MQTTClient *handle, const char *serverURI, const char *clientId, int persistence_type, void *persistence_context)
Definition: MQTTClient.c:507


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 03:48:09