MQTT介绍
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。
MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性: 1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合; 2、对负载内容屏蔽的消息传输; 3、使用 TCP/IP 提供网络连接; 4、有三种消息发布服务质量: “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。 “至少一次”,确保消息到达,但消息重复可能会发生。 “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。 5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量; 6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;
EMQTT介绍
EMQ 是百万级一站式物联网消息服务平台具体介绍可以到EMQTTD官网查看www.emqtt.com/
EMQTT 安装及测试
emq 版本
开发版:
稳定版:
根据操作系统选择对应版本的安装包,这里笔者的服务器是Ubuntu server 16.04 LTS 所以选择了 Ubuntu16.04-DEB(64-bit) www.emqtt.com/downloads/2…
安装
1.下载安装包
wget http://www.emqtt.com/downloads/2318/ubuntu16_04-deb复制代码
sudo dpkg -i 此处为你下载的安装包名称.deb复制代码
3.应用命令
service emqttd start
//service emqttd start|stop|restar复制代码
4.访问测试
访问 http://你主机的IP:18083/ 如果看到如下界面证明启动emqttd成功
测试
1.安装mqtt支持库
npm install mqtt --save //nodejs mqtt支持库复制代码
2.demo
var client = connect('mqtt://94.191.78.55') client.on('connect',
function() {
client.subscribe('/server',
function(err) {
if (!err) {
client.publish('/server', 'Hello mqtt')
}
})
}) client.on('message',
function(topic, message) {
// message is Buffer
console.log(message.toString(), topic) client.close();
})
复制代码
3.终端可以看到输出
Hello mqtt /server
复制代码