简体   繁体   中英

How to authenticate paho mqtt subscriber client in C language with cloudamqp?

I want to connect mqtt subscriber c client to cloudamqp but don't know how to authenticate with C program? Are there any other C language clients with working example. I am using linux.

 #include <stdio.h> #include <stdlib.h> #include <string.h> #include "MQTTClient.h" #define ADDRESS "tcp://buck.rmq.cloudamqp.com:1883" #define CLIENTID "ExampleClientSub" #define PAYLOAD "Hello World!" #define QOS 1 #define TIMEOUT 10000L #define USERNAME "sakhdjs" #define PASSWORD "B7JnaMNF2evJmWpT_WZn" char TOPIC[12]; volatile 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; printf("Enter toic name to subscribe "); scanf("%s", TOPIC); //printf("Enter host adderss with format like tcp://localhost:1883 "); // scanf("%s", ADDRESS); MQTTClient_create(&client, ADDRESS, CLIENTID, MQTTCLIENT_PERSISTENCE_NONE,NULL); conn_opts.keepAliveInterval = 20; conn_opts.cleansession = 1; MQTTClient_setCallbacks(client, NULL, connlost, msgarrvd, delivered); if ((rc = MQTTClient_connect(client, &conn_opts ,USERNAME,PASSWORD)) != 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; }

How to connect using paho mqtt subscriber and also publish? Are there any other C language clients for this purpose? Or any other way in C language with code?

You set the username and password fields in the MQTTClient_connectOptions structure before you pass it to the MQTTClient_connect() function.

MQTTClient_create(&client, ADDRESS, CLIENTID,
    MQTTCLIENT_PERSISTENCE_NONE,NULL);
conn_opts.keepAliveInterval = 20;
conn_opts.cleansession = 1;
conn_opts.username = USERNAME
conn_opts.password = PASSWORD

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM