这次学习MQTT开了两个BPI,一个是Raspbian,一个是Debian,一台做服务端,一台做订阅端,第一次安装时候没有记录下来,所以决定再装一次
两个BPI都打开之后,接下来是安装mosquitto了,根据http://blog.csdn.net/xukai871105/article/details/39252653这个文章说的方法,后面说的几个问题全!都!遇!到!了!所以这次决定先把这些工具安装好
sudo apt-get update
sudo apt-get install libssl-dev libc-ares-dev uuid-dev
然后下载源码包
wget http://mosquitto.org/files/source/mosquitto-1.4.5.tar.gz
解压
tar zxfv mosquitto-1.4.5.tar.gz
进入目录并编译
cd mosquitto-1.4.5
make
安装
sudo make install
创建链接
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
更新动态链接库
sudo ldconfig
这就安装好了,在试的时候发现mosquitto这个命令还是无法用,说command not found
没办法,又安装了一次
sudo apt-get install mosquitto
(我以为是源码的问题,后来我先通过包管理器安装,然后再试,发现没有init文件,有知道啥解决办法的大神麻烦告知下)
接下来就是开启服务了
mosquitto -c /etc/mosquitto/mosquitto.conf -d
(在这里可能会出现Invaliduser ‘mosquitto’的问题,看过这里之后发现是用户不对的原因,解决方法有两种
(1)添加一个叫用户mosquitto的用户:adduser mosquitto
(2)修改配置文件:mosquitto.conf ,增加登录的用户,例如当前登录用户为bananapi,
文件在/etc/mosquitto/目录下,在文件下最后一行加一句“user bananapi”就可以了)
两个BPI都设置好后,就是开始通信了,开启服务的方法有两种
mosquitto -c /etc/mosquitto/mosquitto.conf -d
sudo /etc/init.d/mosquitto start
+++++++++++++++++++++++++++++++++++我是分割线+++++++++++++++++++++++++++++++++++++
我用的是M2开启服务,然后就是用M1+运行订阅程序mosquitto_sub了
*注意:消息推送的发布和订阅要有主题,选项[-t] 主题,即:
mosquitto -t 主题
如需指定用户名称则加选项[-i] 用户名,即:
mosquitto_sub -t 主题 -i 订阅端
mosquitto_sub -t bpi
然后用M2推送主题,发布端用户名和消息:mosquitto_pub -t 主题 -i 发布端 -h 主机 -m 你好*注意:如果消息中间有空格则消息要用引号括起来。
mosquitto_pub -t 主题 -i 发布端 -h host -m '我是发布端,你好。'
mosquitto_pub -h localhost -t bpi -m "hello BPI-M1+,I'm BPI-M2."
最后附上一张图
暂无评论