关于MQTT的安装之前写过一次,但是不够详细,这里重新补充一下,以后用到的时候更方便。
1. 安装MQTT服务器
上网搜索apache activemq,找到它的官网https://activemq.apache.org/。
下载Linux版本。写文档时版本为ActiveMQ 5.18.1 Release
解压后进入目录,运行:./bin/activemq console
即可启动服务
无法启动,java版本不对。安装对应的java版本。
$sudo apt install openjdk-11-jdk
然后再次启动服务
2. 安装MQTT 客户端
在https://github.com/eclipse/paho.mqtt.c下载安装包并解压,进入目录。
$make
报错,然后sudo apt install libssl-dev
$make
成功
$make install
注意,这里直接make,不是去build文件夹下make。
3. 测试是否安装成功,使用自带的示例
发布程序示例MQTTClient_publish.c:
$cd src/samples/
在mqtt工程的src/samples目录下,打开MQTTClient_publish.c。
通过修改#define ADDRESS设置服务器地址。
$vi MQTTClient_publish.c
将#define ADDRESS "tcp://mqtt.eclipseprojects.io:1883"更改为
#define ADDRESS "tcp://172.16.67.130:1883"
然后保存退出。
172.16.67.130是步骤1服务所在的ip,这里与代码都在同一个机器上。
修改#define PAYLOAD 设置消息内容。(这里保持不变)
修改#define TOPIC修改发布主题。(这里保持不变)
订阅程序示例MQTTClient_subscribe.c:
在mqtt工程的src/samples目录下,打开MQTTClient_subscribe.c
通过修改#define ADDRESS设置服务器地址。
$vi MQTTClient_subscribe.c
将#define ADDRESS "tcp://mqtt.eclipseprojects.io:1883"更改为
#define ADDRESS "tcp://172.16.67.130:1883"
然后保存退出
修改#define TOPIC修改订阅主题。主题与发布者一致时,可收到发布的消息。(这里保持不变)
$cd ../../
$make
$cd build/output/samples
回到paho.mqtt.c的目录下,然后重新make,在build/output/samples会有生成文件,执行MQTTClient_subscribe,然后在另一个终端执行MQTTClient_publish,就可以看到通信。