文章目录
1. Ubutun 端安装
sudo apt-get install mosquitto #安装后才能运行MQTT broker
sudo apt-get install libmosquitto-dev #安装开发包才能在程序中调用
sudo apt-get install libmosquittopp-dev #C++版封装的libmosquitto
2. 相关命令
service mosquitto status # 查看状态
service mosquitto start # 启动
service mosquitto stop # 停止
service mosquitto restart # 重启
3. 测试
mosquitto -v # 使用默认参数开启MQTT broker
mosquitto_sub -t test -v # 订阅话题 test
mosquitto_pub -h localhost -t test -m "Hello MQTT" # 发布话题
或
mosquitto -v # 使用默认参数开启MQTT broker
mosquitto_sub -h localhost -t "mqtt" -v # 订阅话题 mqtt
mosquitto_pub -h localhost -t "mqtt" -m "Hello MQTT" # 发布话题
-h 表示服务器地址参数,localhost 表示服务器为本机,也可以直接输入本地 IP;
-t 表示话题(Topic),“mqtt” 为订阅 / 发布的话题名;
-v 表示代码调试模式,可以输出更多的信息;
-m 表示发布的 Message 内容,此时发送的是字符串 “Hello MQTT"。
4. 编写 C / C++ 程序
关于使用gcc时链接到我们mosquitto库的方法参考:How to compile using libmosquitto
C 语言实现:C语言实现mosquitto发布、订阅消息
5. Bug
5.1 mosquitto -v
Bug解决方法
5.1.1 Error: Address already in use
bug如下:
Error: Address already in use
解决方法参考:
ps -ef | grep mosquitto # 查看进程号(第一列数字)
kill xxx # 杀死进程
5.1.2 Exec format error
bug如下:
bash: /usr/local/sbin/mosquitto: cannot execute binary file: Exec format error
解决方法:
which mosquitto # 查看路径,如果不是/usr/sbin,则需要按如下方法解决
gedit .bashrc
添加这行:
export PATH=/usr/sbin:$PATH
然后在终端里 source 一下:
source .bashrc