红联Linux门户
Linux帮助

安装MQTT客户端/服务器

发布时间:2015-12-06 10:33:22来源:linux网站作者:zhanghongjay

安装环境:fedora 23
MQTT官方介绍
MQTT 简介以及适用场景用

IBM® WebSphere® MQ Telemetry Transport(简称 MQTT)是一种基于 TCP/IP 的轻量级发布 / 预订协议,用于连接大量的远程传感器和控制设备。在必须允许低带宽和不可靠的通信并且占用较少内存的设备上,专业化的应用程序就使用 MQTT 协议。用户可以编写自己的客户机以使用已发布的协议。

MQTT 产品作为 WebSphere MQ 产品的扩展,使用了 MQTT V3.1 版本的协议。它提供了一些小型客户机库,可以将这些客户机库嵌入到运行于不同设备平台上的智能设备中。使用客户机构建的应用程序使用 MQ Telemetry Transport(MQTT) 和 WebSphere MQ Telemetry 服务并借助 WebSphere MQ 来可靠地发布和预订消息。一个高级 MQTT 客户机(即设备的 WebSphere MQ Telemetry 守护程序)可以运行于多种平台上。它可以充当一个网络集中器,能够将更多的 MQTT 客户机连接至单个队列管理器。对于在网络发生短暂中断期间无法缓存消息的小型设备,它还可以为这些小型设备提供存储转发功能。

物联网,即 Internet-of-Things, 简称 IOT。它和能源、电子信息、医疗、交通、零售、物流、工业制造等行业息息相关。要实现物联网,首先需要将具备信息感知和通信能力的设备嵌入到我们关心的 物品中,使其能连接到因特网或企业网络之上,实现互联互通。之后,互通的物品不仅要通过设备采集信息、实现智能的感知,更要结合一切先进的信息处理、数据 挖掘等手段,与业务应用相结合,从后台到前端设备,实现智能的控制。

MQTT 结合物联网应用,它可以将各种移动设备连接至因特网和企业,降低了为智能设备构建应用程序的成本,从而为物联网应用构建连通的平台。


服务器/客户端选择

在MQTT官网中http://mqtt.org/software列举出了实现了该协议的开源客户端和服务器工程和库。根据网上资料的丰富程度这里我选Mosquitto作为我学习的工具


Mosquitto介绍

Mosquitto is an Open Source MQTT server with C, C++, Python. For JavaScript, Mosquitto recommends the Eclipse Paho Javascript client. A public, hosted test server is also available


Mosquitto安装配置

安装必要的库和工具包
 
sudo dnf groupinstall "Development tools"<br>sudo dnf groupinstall "Development Libraries"<br>sudo dnf install cmake gcc-c++ openssl-devel  c-ares-devel

下载源代码包,截止2015年12月,最新版本为mosquitto-1.4.5
 
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

配置
 
cmake .

编译
 
make

安装
 
sudo make install

安装MQTT客户端/服务器

可以看出默认配置文件目录为/usr/local/etc/mosquitto

查看帮助文件
 
mosquitto --help
 
mosquitto is an MQTT v3.1 broker.
 
Usage: mosquitto [-c config_file] [-d] [-h] [-p port]
 
-c : specify the broker config file.
-d : put the broker into the background after starting.
-h : display this help.
-p : start the broker listening on the specified port.
Not recommended in conjunction with the -c option.
-v : verbose mode - enable all logging types. This overrides
any logging options given in the config file.

See http://mosquitto.org/ for more information.

启动mosquitto并载入配置文件
 
cd /usr/local/etc/mosquitto/
mosquitto -c mosquitto.conf -d


MQTT订阅发布命令
订阅主题
 
mosquitto_sub -v -t sensor

【-t】指定主题,此处为sensor
【-v】打印更多的调试信息

如需指定用户名称则加选项[-i] 用户名


发布内容
 
mosquitto_pub -t sensor  -m "hello world"

*注意:如果消息中间有空格则消息要已单引号括起来。

【-t】指定主题

【-m】指定消息内容


运行结果:

后台窗口

安装MQTT客户端/服务器

订阅窗口

安装MQTT客户端/服务器

发送窗口

安装MQTT客户端/服务器