【MQTT】MQTT C语言客户端实现/ MQTT嵌入式客户端

40 篇文章 28 订阅

目录

前言

MQTT客户端实现(嵌入式)

MQTT 客户端C语言编好的库和例子(example)

网友例子

物联网协议比较:MQTT 和 MQTT-SN

client 库使用流程


前言

本文随时更新,转载请注明出处,源地址:http://t.csdn.cn/msnmP


 

MQTT客户端实现(嵌入式)

最新最容易使用的mqtt封装。 MQTT客户端实现(使用Eclipse Paho C库,进行了二次封装)。 在Linkit7688单片机上运行测试通过,附例程。

MQTT客户端C语言代码(Paho库及二次封装):https://download.csdn.net/download/skyformat99/9969954

MQTT客户端C语言代码(Paho库及二次封装):https://download.csdn.net/download/c80486/9534892

MQTT 客户端C语言编好的库和例子(example)

代码:MQTTC语言库(lib和dll)+例子代码_https://download.csdn.net/download/bandaoyu/12272053

MQTTClientlibraryforC_https://download.csdn.net/download/lulongbao231/10578553

[root@Lrw888 MQTT-PahoC-lib-dll-with-sample]# tree -L 2
.
├── bin
│   ├── MQTTVersion.exe
│   ├── paho-mqtt3a.dll
│   └── paho-mqtt3c.dll
├── CONTRIBUTING.md
├── edl-v10
├── epl-v10
├── include
│   ├── MQTTAsync.h
│   ├── MQTTClient.h
│   ├── MQTTClientPersistence.h
│   ├── MQTTProperties.h
│   ├── MQTTReasonCodes.h
│   └── MQTTSubscribeOpts.h
├── lib
│   ├── paho-mqtt3a.lib
│   └── paho-mqtt3c.lib
├── notice.html
├── README.md
├── samples
│   ├── MQTTAsync_publish.c
│   ├── MQTTAsync_subscribe.c
│   ├── MQTTClient_publish_async.c
│   ├── MQTTClient_publish.c
│   ├── MQTTClient_subscribe.c
│   ├── paho_c_pub.c
│   ├── paho_cs_pub.c
│   ├── paho_cs_sub.c
│   ├── paho_c_sub.c
│   └── pubsub_opts.c
└── \350\257\264\346\230\216.txt

网友例子

Paho - MQTT C Cient的实现_https://blog.csdn.net/weixin_37139197/article/details/78934961

物联网协议比较:MQTT 和 MQTT-SN

MQTT-SN(Sensor Networks)是MQTT协议的传感器版本,基于TCP协议的MQTT对有些传感器来说还是负载太重了,这些传感器可能只有几十个字节的内存,无法运行TCP协议。MQTT-SN对MQTT对内存受限的微处理器做了适当的优化,使之能够跑在这种处理器上。

MQTT 和 MQTT-SN的具体区别见:物联网协议比较:MQTT 和 MQTT-SN https://baijiahao.baidu.com/s?id=1608466062692674965&wfr=spider&for=pc

client 库使用流程

1、到MQTT client 库的网站下载库或者源码自己编译成库。

下载库或者源码:

https://github.com/eclipse/paho.mqtt.c/releases

https://www.eclipse.org/paho/downloads.php

介绍网页:

https://www.eclipse.org/paho/downloads.php

2、将库和头文件加入到自己的工程中即可:

Paho MQTT C Client说明:https://www.eclipse.org/paho/files/mqttdoc/MQTTClient/html/index.html

3、库文件说明

Libraries

The Paho C client comprises four shared libraries:

  • libmqttv3a.so - asynchronous
  • libmqttv3as.so - asynchronous with SSL
  • libmqttv3c.so - "classic" / synchronous
  • libmqttv3cs.so - "classic" / synchronous with SSL

Optionally, using the CMake build, you can build static versions of those libraries.

GitHub - eclipse/paho.mqtt.c: An Eclipse Paho C client library for MQTT for Windows, Linux and MacOS. API documentation: https://eclipse.github.io/paho.mqtt.c/

4、使用方式

使用方式参加 samples 文件夹

windows工程设置参见:https://blog.csdn.net/bandaoyu/article/details/105102945

知乎示例:MQTT C Client Library - https://zhuanlan.zhihu.com/p/54450815

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
paho.mqtt.embedded-c是一个C语言实现MQTT客户库,它提供了MQTT协议的完整实现,可以运行在嵌入系统中。如果你需要在C++项目中使用MQTT客户,可以使用paho.mqtt.embedded-c库的C++封装,也就是paho.mqtt.cpp库。 paho.mqtt.cpp库是一个基于paho.mqtt.embedded-c库的C++封装,它提供了更加易用的C++ API,使得在C++项目中使用MQTT更加方便。 下面是一个使用paho.mqtt.cpp库实现MQTT客户的示例代码: ```c++ #include <cstdlib> #include <iostream> #include <cstring> #include <chrono> #include <thread> #include "mqtt/async_client.h" const std::string SERVER_ADDRESS("tcp://localhost:1883"); const std::string CLIENT_ID("paho_cpp_async_subcribe"); const std::string TOPIC("hello"); class callback : public virtual mqtt::callback { public: virtual void connection_lost(const std::string& cause) override { std::cout << "Connection lost: " << cause << std::endl; } virtual void message_arrived(mqtt::const_message_ptr msg) override { std::cout << "Message arrived" << std::endl; std::cout << "Topic: " << msg->get_topic() << std::endl; std::cout << "Payload: " << msg->to_string() << std::endl; } virtual void delivery_complete(mqtt::delivery_token_ptr token) override { std::cout << "Delivery complete" << std::endl; } }; int main(int argc, char* argv[]) { mqtt::async_client client(SERVER_ADDRESS, CLIENT_ID); callback cb; client.set_callback(cb); mqtt::connect_options conn_opts; conn_opts.set_keep_alive_interval(20); conn_opts.set_clean_session(true); std::cout << "Connecting to the MQTT server..." << std::flush; try { mqtt::token_ptr conntok = client.connect(conn_opts); conntok->wait(); std::cout << "OK" << std::endl; } catch (const mqtt::exception& exc) { std::cerr << "\nERROR: Unable to connect to MQTT server: " << exc.what() << std::endl; return 1; } mqtt::token_ptr subtok = client.subscribe(TOPIC, 0); subtok->wait(); std::cout << "Subscribed to topic: " << TOPIC << std::endl; while (true) { std::this_thread::sleep_for(std::chrono::seconds(1)); } client.unsubscribe(TOPIC)->wait(); client.disconnect()->wait(); return 0; } ``` 在这个示例代码中,我们使用了paho.mqtt.cpp库来连接到MQTT服务器,订阅一个主题,然后等待消息的到来。当消息到来时,我们会打印出来消息的主题和内容。 如果你需要在C++项目中使用MQTT客户,paho.mqtt.cpp库会是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值