mqtt amqp
This commit is contained in:
@@ -3,6 +3,11 @@
|
|||||||
"build": {
|
"build": {
|
||||||
"dockerfile": "Dockerfile"
|
"dockerfile": "Dockerfile"
|
||||||
},
|
},
|
||||||
|
"runArgs": [
|
||||||
|
"--label", "prometheus=true",
|
||||||
|
"--network=proxy_net",
|
||||||
|
"--name=pompes"
|
||||||
|
],
|
||||||
"customizations": {
|
"customizations": {
|
||||||
"vscode": {
|
"vscode": {
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -13,8 +18,7 @@
|
|||||||
},
|
},
|
||||||
"extensions": [
|
"extensions": [
|
||||||
"ms-vscode.cpptools",
|
"ms-vscode.cpptools",
|
||||||
"ms-vscode.makefile-tools",
|
"ms-vscode.makefile-tools"
|
||||||
"danielpinto8zz6.c-cpp-compile-run"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
52
main-amqp.cpp
Normal file
52
main-amqp.cpp
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#include <rabbitmq-c/amqp.h>
|
||||||
|
#include <rabbitmq-c/tcp_socket.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
amqp_connection_state_t conn = amqp_new_connection();
|
||||||
|
amqp_socket_t *socket = amqp_tcp_socket_new(conn);
|
||||||
|
|
||||||
|
if (!socket) {
|
||||||
|
fprintf(stderr, "Erreur création socket\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amqp_socket_open(socket, "localhost", 5672)) {
|
||||||
|
fprintf(stderr, "Impossible d'ouvrir la connexion\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
amqp_rpc_reply_t reply;
|
||||||
|
|
||||||
|
reply = amqp_login(conn, "/", 0, 131072, 60,
|
||||||
|
AMQP_SASL_METHOD_PLAIN, "guest", "guest");
|
||||||
|
if (reply.reply_type != AMQP_RESPONSE_NORMAL) {
|
||||||
|
fprintf(stderr, "Erreur login\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
amqp_channel_open(conn, 1);
|
||||||
|
amqp_get_rpc_reply(conn);
|
||||||
|
|
||||||
|
const char *message = "Hello AMQP!";
|
||||||
|
amqp_bytes_t message_bytes = amqp_cstring_bytes(message);
|
||||||
|
|
||||||
|
amqp_basic_publish(conn,
|
||||||
|
1,
|
||||||
|
amqp_cstring_bytes(""),
|
||||||
|
amqp_cstring_bytes("test.queue"),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
message_bytes);
|
||||||
|
|
||||||
|
printf("Message envoyé !\n");
|
||||||
|
|
||||||
|
amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS);
|
||||||
|
amqp_connection_close(conn, AMQP_REPLY_SUCCESS);
|
||||||
|
amqp_destroy_connection(conn);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
43
main-mqtt.cpp
Normal file
43
main-mqtt.cpp
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user