文章首发于同名微信公众号:DigCore
欢迎关注同名微信公众号:DigCore,及时获取最新技术博文。
在上一篇文章《【原创】MQTT客户端搭建-最清晰的MQTT协议架构》中提到了MQTT.fx工具作为客户端使用时,使用了该工具官方提供的服务器m2m.eclipse.org: 1883,现在准备在本地主机搭建一个MQTT服务器。
在GitHub网站上MQTT项目里,也有很多关于服务器的介绍,各类服务器平台列表:
https://github.com/mqtt/mqtt.github.io/wiki/brokers
关于MQTT服务器的搭建已经有很多人参与进来了,不过各个服务器未必安装的都如此顺利,总结近期网上搜寻到的资料:
MQTTRoute,本站验证结果:有30天试用期。
MQTTnet,用户在博客发表验证结果:MQTTnet在VS2015打不开且客户端示例不可用,属于C++源项目。
该用户博客地址:
https://www.cnblogs.com/zeroes/p/mqttnet.html
Mosquitto,本站验证结果:不可下载win7-64安装包。
用户在博客发表验证结果:Win10 64位系统,安装报错或缺少dll文件,不能使用。
该用户博客地址:
https://blog.csdn.net/yannanxiu/article/details/52703946
对比以上这些别人的经验后,最后选择安装Apache Apollo。
软件下载
服务器下载地址:
http://activemq.apache.org/apollo/download.html
软件安装与配置
下载了软件包后解压到要放置的目录(注:不允许有中文),启动CMD命令行工具。
CMD命令行工具下切换到目录
.. \apache-apollo-1.7.1-windows-distro\apache-apollo-1.7.1\bin
下,执行apollocreate digcore指令,如下图:
出现报错信息:
Warning: JAVA_HOME environmentvariable is not set.
Error: missing `server' JVM at`C:\Program Files (x86)\Java\jre1.8.0_161\bin
ver\jvm.dll'.
Please install or use the JRE or JDK that contains these missingcomponents.
这说明电脑还未配置相关的环境,需要安装JDK,下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
1.下载并安装后,配置JDK到系统环境变量
2.新建系统变量JAVA_HOME,设置变量值C:\Program Files\Java\jdk1.8.0_181
3.新建PATH(加入列表已存在直接编辑),新增变量值
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,注意新增变量值时候不要删除原本的信息,用分号;隔开
4.新建CLASSPATH,设置变量值
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
5.在CMD命令行输入java –version验证java环境的正确配置。
创建服务器并验证
创建一个MQTT代理服务器,命令行切换到bin目录下后执行apollocreate digcore
成功创建一个MQTT代理服务器后
切换目录到新创建的MQTT代理服务器文件夹下的bin目录:..\apache-apollo-1.7.1\bin\digcore\bin
执行指令apollo-broker.cmd run 启动服务器
命令行出现了代理服务器的启动信息,打开浏览器,输入命令行中显示的IP(一般自己电脑本机)和端口号,即可访问
默认配置:用户名admin,密码password
使用MQTT.fx客户端尝试连接服务器
在MQTT.fx中填写服务器信息,这里需要注意服务器接受的连接端口号,此案例中TCP连接时支持的是61613端口。
MQTT.fx客户端连接成功后,服务器控制台的Connectors选项卡内有新的连接设备接入信息:
再开启一个MQTT.fx客户端,设置第二个MQTT.fx客户端时,需要留意把ClientID设置成不同于上一个客户端即可。
一起连入服务器后的效果:
以上完成了MQTT服务器在本地主机的搭建过程。
作为应用开发者来说,侧重点如果是在客户端的设计开发,则对服务器的选择就要考虑便捷性和可靠性。
更多技术干货分享,敬请关注微信公众号:DigCore
或者扫码关注公众号