MQTT

MQTT

简介:MQTT由IBM公司开发,是一个即时通讯协议,也是一个物联网传输协议,主要用于轻量级的订阅/发布式的消息传输。其设计目的主要是为低带宽和不稳定网络环境下的物联网设备提供服务。

MQTT中的概念

  • 订阅(Subscribtion):
    订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。
  • 会话(Session):
    每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。
  • 主题名(Topic Name):
    连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。
    需要注意的是,MQTT中消息主题按照层级命名,使用 ‘/’ 进行分割
    此外,主题中可以使用通配符进行多个主题或多层级的订阅,有两种常见的通配符:
    1. 单层通配符 +:单层通配符只能匹配一层的主题,例如:China/Beijing/+,可以匹配的只有Beijing这个主题下面一层的主题,例如Xicheng, DongCheng, Xuanwu等等。
    2. 多层通配符 #:顾名思义,多层通配符就是可以匹配多个层级的主题,例如:China/#,可以匹配到的主题可能有:China/Beijing/Dongcheng, China/Shanghai/PuDong,等等。
  • 主题筛选器(Topic Filter):
    一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。
  • 负载(Payload):
    消息订阅者所具体接收的内容。

MQTT中的角色

MQTT

  • Publisher和Subscriber为客户端,Broker为服务器端,消息主题为消息类型,Broker根据Topic过滤消息,并将消息向客户端推送。
  • MQTT中用QoS表示服务质量,MQTT协议中有三种服务质量(QoS):
    1. QoS =0,至多一次,可能会出现丢包的情况,使用在对实时性要求不高的情况,例如,将此服务质量与通信环境传感器数据一起使用。 对于是否丢失个别读取或是否稍后立即发布新的读取并不重要。
    2. QoS =1,至少一次,保证包会到达目的地,但是可能出现重包。
    3. QoS =2, 刚好一次,保证包会到达目的地,且不会出现重包的现象。

客户端

  • Publisher和Subscriber都属于客户端。
  • 发布应用消息给其它相关的客户端。
  • 订阅以请求接受相关的应用消息。
  • 取消订阅以移除接受应用消息的请求。
  • 从服务端断开连接。

服务器端

  • 服务器端即所谓的MQTT Broker服务器。
  • 接受来自客户端的网络连接。
  • 接受客户端发布的应用消息。
  • 处理客户端的订阅和取消订阅请求。
  • 转发应用消息给符合条件的已订阅客户端。
  • MQTT提供的公共服务器端(Broker)有:
    • test.mosquitto.org
    • broker.hivemq.com
    • iot.eclipse.org

配置私有的MQTT服务器

通常情况,出于安全考虑,一般使用私有的MQTT服务器端,MQTT的本地服务由Mosquitto支持。设置MQTT私有服务器端的方法如下(环境为Ubuntu16.04):

# Install Mosquitto and Mosquitto-clients(optional)
sudo apt-get install mosquitto

# 默认情况下,ubuntu会自动启动Mosquitto服务,所以无需显式启动服务,此时可以查看mosquitto状态:
sudo systemctl satus mosquitto

mqtt test

如果你只是想运行一个本地的MQTT服务,现在已经OK了。在mosquitto服务启动之后,你可以使用服务器的域名或者IP地址访问,MQTT服务器默认端口为1883。问题很明显,虽然我们设置了本地的私有MQTT服务器端,但是任何人都可以通过IP访问这台服务器

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值