๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

MQTT ๋กœ local ์—์„œ pub & sub ๊ตฌํ˜„ํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป IoT (Embedded)/Protocol

MQTT ๋กœ local ์—์„œ pub & sub ๊ตฌํ˜„ํ•˜๊ธฐ

์ง•์ง•์•ŒํŒŒ์นด 2023. 12. 7. 11:34
728x90
๋ฐ˜์‘ํ˜•

โญ pub.c

// pub.c
#include <stdio.h>
#include <mosquitto.h>

int main(){
	int rc;
	struct mosquitto * mosq;

	mosquitto_lib_init();

	mosq = mosquitto_new("publisher-test", true, NULL); //mosquitto ๊ตฌ์กฐ์ฒด ์ƒ์„ฑ

	rc = mosquitto_connect(mosq, "localhost", 1883, 60);//mosqutiio ๋ธŒ๋กœ์ปค์™€ ์—ฐ๊ฒฐ
	if(rc != 0){
		printf("Client could not connect to broker! Error Code: %d\n", rc);
		mosquitto_destroy(mosq);
		return -1;
	}
	printf("We are now connected to the broker!\n");

	mosquitto_publish(mosq, NULL, "test/t1", 6, "Hello", 0, false); //ํ† ํ”ฝ

	mosquitto_disconnect(mosq);
	mosquitto_destroy(mosq);

	mosquitto_lib_cleanup();
	return 0;
}

 

โญ sub.c

// sub.c
#include <stdio.h>
#include <stdlib.h>

#include <mosquitto.h>

void on_connect(struct mosquitto *mosq, void *obj, int rc) {
	printf("ID: %d\n", * (int *) obj);
	if(rc) {
		printf("Error with result code: %d\n", rc);
		exit(-1);
	}
	mosquitto_subscribe(mosq, NULL, "test/t1", 0);
}

void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_message *msg) {
	printf("%s", (char *) msg->payload);
}

int main() {
	int rc, id=12;
	mosquitto_lib_init();

	struct mosquitto *mosq;

	mosq = mosquitto_new("subscribe-test", true, &id); //mosquitto ๊ตฌ์กฐ์ฒด ์ƒ์„ฑ
	mosquitto_connect_callback_set(mosq, on_connect);
	mosquitto_message_callback_set(mosq, on_message);
	
	rc = mosquitto_connect(mosq, "127.0.0.1", 1883, 10); // ๋ธŒ๋กœ์ปค์™€ ์—ฐ๊ฒฐ
	if(rc) {
		printf("Could not connect to Broker with return code %d\n", rc);
		return -1;
	}

	mosquitto_loop_start(mosq);
	printf("Press Enter to quit...\n");
	getchar();
	mosquitto_loop_stop(mosq, true);

	mosquitto_disconnect(mosq);
	mosquitto_destroy(mosq);
	mosquitto_lib_cleanup();

	return 0;
}
728x90
๋ฐ˜์‘ํ˜•
Comments