该博客主要介绍服务器端的相关程序的搭建。该篇主要介绍MQTT代理mosquitto的安装和测试,下一篇介绍Java Web开发相关服务器环境的配置。
一、服务器购买和配置
1.服务器购买
作者购买的是阿里云的学生优惠版服务器,具体配置为:
* CPU:1核
* 内存:2GB
* 操作系统:CentOS 7.4 64位
* 硬盘:40G
2.开启安全组规则
开启了如下安全组规则,便于以后使用:
入方向
出方向
3.更新系统
使用ssh登录进服务器后,运行如下命令(作者使用的是root账户,以下所有命令除非特殊说明都是在root账户下执行的)更新系统和安装开发用基本工具。
更新系统和软件:
yum -y update
安装开发者工具组:
yum groupinstall -y "Development Tools"
由于作者使用的ssh客户端是windows下的xshell,因此安装如下程序便于文件上传和下载:
yum install lrzsz
二、MQTT代理mosquitto安装和配置
1.mosquitto安装
(1)下载
Mosquitto官方下载地址
找到如下链接复制源码下载地址
在ssh客户端中运行如下命令下载源码包(此处也可以用windows知己下载,然后上传到服务器上去,不过作者觉得这样直接下载到服务器上更快一点):
wget http://mosquitto.org/files/source/mosquitto-1.4.14.tar.gz
(2)安装
解压缩刚才下载的源码包:
tar -zxvf mosquitto-1.4.14.tar.gz
进入到解压缩后的文件夹中。该文件夹中的config.mk文件是安装过程中的一个很重要的配置文件。具体配置大家可以自行百度,作者在这里就直接采用默认值了(因为作者也不是很懂这块,也懒得具体配置了[尴尬])。使用make编译和安装源码:
make
make install
make过程中可能会遇到以下几个问题,如果出现的话则安装相应的库之后重新执行make命令即可:①缺少ssl库yum install openssl-devel.x86_64
②缺少ares.hyum install c-ares-devel.x86_64
③缺少uuid.hyum install -y libuuid-devel.x86_64
以上库都是CentOS7.4系统对应下的库,如果在其他系统下则名称可能有点不太一样,最好使用软件包安装工具的search功能搜索一下安装即可。
(3)测试
安装完成后即可测试一下mosquitto的程序。mosquitto的一个很重要的配置文件在目录/etc/mosquitto中,该目录中有如下文件:
将mosquitto.conf.sample文件拷贝一份,并重命名为mosquitto.conf,作为默认配置文件(该配置文件的作用也很重要,具体的以后用到再说,此处就先使用默认配置即可)。
cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
测试时打开三个ssh连接窗口。第一个中运行如下命令开启mosquitto服务,其中-v参数表示输出调试信息
mosquitto -v
此处可能会报错,找不到用户mosquitto。因为mosquitto在运行时会自动降低权限至用户mosquitto上,因此需要向系统添加用户mosquitto。命令如下
useradd mosquitto
第二个窗口开启监听某一个主题,命令如下:
mosquitto_sub -t sensor
该命令启动客户端订阅功能,订阅主题sensor的消息。该命令执行后窗口一直处理等待状态,如果有对应主题的消息发送到服务器,此处则会显示消息内容。而此时返回窗口一则会看到提示客户端已经连接的信息:
执行该命令时可能会报如下错误,找不到库:创建库文件的链接并使用ldconfig使链接生效:
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1ldconfig
第三个窗口中使用命令向主题sensor发布信息:
mosquitto_pub -t sensor -m 12313
此时窗口二显示如下信息:
窗口一显示如下日志:
三、启动mosquitto在后台运行
如上过程如果没有异常的话说明mosquitto安装成功,那么就可以执行如下命令使得mosquitto在后台运行。其他所有客户端可以通过 [ip地址]:1883来访问服务器上的MQTT代理服务。
mosquitto -d