文章钢要:1、了解Mosquitto服务器 2、在Liunx中搭建Mosquitto服务器 3、设置Mosquitto集群 一、Mosquitto简介一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。一个典型的应用案例就是 Andy Stanford-ClarkMosquitto(MQTT协议创始人之一)在家中实现的远程监控和自动化。并在 OggCamp 的演讲上,对MQTT协议进行详细阐述。 Mosquitto管网:http:/// Mosquitto最新的源码:http:///files/source/ 二、Liunx下安装Mosquitto在windows下安装比较简单,在windows环境下需要先下载安装Cygwin,安装成功后在管网下载Mosquitto.exe之后点击安装即可。圆子里有很多教程讲解,就不阐述了。并且在实际开发环境中使用windows环境在少数,大部分使用Liunx,因此下面介绍下在Liunx下安装Mosquitto。 Liunx下安装Mosquitto方法有2中,下载安装包到本地安装以及yum安装。推荐用yum安装因为比较方便,如果安装失败再考虑使用压缩包安装。 使用yum安装:1、默认情况下Mosquitto的安装需要OpenSSL的支持,所以先安装OpenSSL yum install gcc gcc-c++ yum install openssl-devel yum install c-ares-devel yum install libuuid-devel yum install wget yum install cmake yum install build-essential python quilt devscripts python-setuptools python3 yum install libssl-dev libc-ares-dev uuid-dev daemon openssl-devel 在安装过程中如果服务器已经安装过上述软件程序,将不会在安装,如果发现新版本或者未安装会提示更新和安装,用户输入‘Y’确认安装即可。
2、下载并编译安装mosquitto 下载压缩包(截止目前2016-11最新的压缩包是1.4.10): wget http:///files/source/mosquitto-1.4.9.tar.gz 解压: tar -xzvf mosquitto-1.4.9.tar.gz 进入目录并安装: cd mosquitto-1.4.9 make make install
3、配置mosquitto.conf文件
整个目录中最重要的文件就是mosquitto.conf,将其复制到ect下面 cp mosquitto.conf /etc/mosquitto 修改mosquitto.conf文件 cd /etc/mosquitto/ 使用vi命令打开mosquitto.conf文件 vi mosquitto.conf 按“↓”移动光标,找到Default Listeners下的 (可以使用“/Extra listeners”来查找文本,按“N”键可以继续超找。按“I”键进入编辑状态,按ESC返回。退出是键入“:wq”保存退出。不保存强制退出“:q!”) 服务的端口号 #port 1883 改为 port 1883
最大连接数,-1表示不限制 #max_connections -1 改为 max_connections -1
因为我的登录用户是root,所以这里使用root #use_username_as_clientid 改为 user root
4、启动Mosquitto服务器 执行 mosquitto -c /etc/mosquitto/mosquitto.conf 在启动的时候会出现报错的情况,执行mosquitto客户端程序时出现找不到动态库:libmosquitto.so.1 错误信息:./mosquitto_sub: 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 即可. 如果显示如下提示说明启动成功,警告不用管。
5、测试服务器订阅与发布 订阅服务: mosquitto_sub -t HelloWord mosquitto_sub 订阅命令 -t 订阅主题 Helloworld 主题名称,可以随便取名 发布服务: mosquitto_pub -t HelloWord -h localhost -m "Hello Word" mosquitto_pub 发布命令 -t 发布主题 Helloworld 主题名称 -h 主机地址 localhost 发布到本地,如果远程主机直接写ip地址(不用写端口号) -m 发布的信息 “Hello world” 发布的内容 如果一切顺,应当如下图所示,可以成功订阅一条信息,并且可以成功发布信息,订阅端可以接受到信息。 下一篇将对Mosquitto集群搭建进行阐述。 |
|