当前位置:   article > 正文

mqtt协议的简单实用实例_mqtt连接到broker代码示例

mqtt连接到broker代码示例

以下是一个简单的使用C语言编程在嵌入式系统中实现MQTT协议的示例:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <mosquitto.h>
  5. void on_connect(struct mosquitto *mqtt, void *userdata, int result) {
  6. if (result == 0) {
  7. printf("Connected to MQTT broker successfully!\n");
  8. mosquitto_subscribe(mqtt, NULL, "topic/example", 0); //订阅主题
  9. } else {
  10. printf("Failed to connect to MQTT broker\n");
  11. }
  12. }
  13. void on_message(struct mosquitto *mqtt, void *userdata, const struct mosquitto_message *message) {
  14. if (message->payloadlen) {
  15. printf("Received message: %s from topic: %s\n", (char *) message->payload, message->topic);
  16. } else {
  17. printf("Empty message received\n");
  18. }
  19. }
  20. int main() {
  21. struct mosquitto *mqtt;
  22. char client_id[] = "sample-client";
  23. char broker_address[] = "localhost";
  24. int port = 1883; //默认MQTT端口
  25. mosquitto_lib_init(); //初始化Mosquitto库
  26. mqtt = mosquitto_new(client_id, true, NULL);
  27. if (mqtt) {
  28. mosquitto_connect_callback_set(mqtt, on_connect);
  29. mosquitto_message_callback_set(mqtt, on_message);
  30. if (mosquitto_connect(mqtt, broker_address, port, 0) != MOSQ_ERR_SUCCESS) {
  31. printf("Unable to connect to the MQTT broker\n");
  32. return -1;
  33. }
  34. mosquitto_loop_start(mqtt); //启动MQTT循环
  35. //发送消息
  36. char message[] = "Hello, MQTT!";
  37. mosquitto_publish(mqtt, NULL, "topic/example", strlen(message), message, 0, false);
  38. //等待退出
  39. mosquitto_loop_stop(mqtt, true);
  40. mosquitto_destroy(mqtt);
  41. }
  42. mosquitto_lib_cleanup(); //清理Mosquitto库
  43. return 0;
  44. }

在这个例子中,我们使用mosquitto库来实现MQTT协议的功能。首先,我们初始化库并创建一个MQTT客户端实例。然后,我们设置连接回调函数和消息回调函数,以便在连接建立和收到消息时进行相应的处理。接下来,我们尝试连接到MQTT代理,并订阅名为"topic/example"的主题。在连接成功后,我们启动MQTT循环以保持与代理的通信。通过mosquitto_publish函数,我们向"topic/example"主题发送一条消息。最后,我们等待循环停止,清理和销毁MQTT客户端实例。

请注意,上述代码仅作为简单示例,并且假设本地有一个名为"localhost"的MQTT代理运行在默认端口1883上。您可能需要根据实际情况进行适当的修改和配置。同时,确保已经在系统中安装了Mosquitto库,并在编译时链接正确的库文件。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/873171
推荐阅读
相关标签
  

闽ICP备14008679号