想跑一个用MQTT传输JSON的实例,上网找了一下开源代码,找到一个比较合适的:https://blog.csdn.net/ktigerhero3/article/details/107178252,
程序源码直接用这个就可以,然后过程中需要进行一下环境的配置,本篇文章主要记录下整个过程。
 我的环境是ubuntu18.04
  先整体看一下我的目录树:

下面介绍一下为了把整个代码跑起来所做的工作:

1. 配置mosquitto

  这个我就选择源码安装了,去https://mosquitto.org/files/source/下载即可
  然后执行:

cd mosquitto-2.0.9
make
sudo make install

如果执行程序时报错:Mosquitto.h not such file or directory,就是上面这步还没有装好

2. 拷贝cjson文件

 样例的源码中使用到了cJSON.c和cJSON.h,这个要自己进行导入,去https://github.com/DaveGamble/cJSON中把两个文件拿到放到自己的项目里

3. 执行程序,开启订阅和发布节点

  执行这步的时候会报错:

error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解决方案是:

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
ldconfig

然后就可以正常执行了,其实只运行发布订阅的时候服务器会默认开启,当然也可以自行开启:

mosquitto -v

如果执行时报错如下:

解决方案如下:

sudo lsof -i:1883
sudo kill xxx

 ps:xxx是PID号

现在一切正常啦!看看效果:
发送端:

订阅端:

服务器端: