最近在看物联网相关方面的协议.了解了mqtt的一点知识,mqtt是一种机器对机器(M2M)/“物联网”连接协议。它被设计成一个非常轻量的发布/订阅消息传输.这使得它适用于物联网信息传递,如低功耗传感器或移动设备,如电话、嵌入式计算机或微控制器。据说,facebook早期聊天基于mqtt ??? 但不管真假,本人作为一个嵌入式的菜鸟,在看代码的同时,觉得有必要实际应用一下.恰好之前有个微信公众号,随决定利用微信公众号+mqtt实现一个远程控制.
搭建MQTT服务端
mosquitto一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单.因此,我们在服务端选择mosquitto软件.
安装mosquitto
1 | 下载Mosquitto |
程序默认安装位置
程序名字 | 程序路径 |
---|---|
mosquiotto server | /usr/local/sbin |
configuration | /etc/mosquitto |
utility command | /usr/local/bin |
配置mosquitto
Mosquitto服务器的配置文件为/etc/mosquitto/mosquitto.conf,关于用户认证的方式和读取的配置都在这个文件中进行配置。对配置文件做如下修改:
1 | useradd mosquiotto #添加用户 |
MQTT通信测试
服务端本地测试
1 | mosquitto -c /etc/mosquitto/mosquitto.conf #启动mosquitto服务 |
发布消息:
订阅消息:
远程测试
要在远程测试首先要安装mqtt.fx软件.
MQTT.Fx参数设置
mqtt 服务器的ip地址和端口号,登录的用户名和密码
Server与MQTT.Fx软件通信
服务端发布消息:
mqtt.fx软件订阅:
mqtt.fx发布消息:
服务端订阅消息: