NANOPI2实现MQTT

  • wawa
  • LV2工程师
  • |      2015-12-24 17:58:54
  • 浏览量 1634
  • 回复:0

MQTT(Message Queuing Telemetry Transport消息队列遥测传输)是基于TCP/IP协议的支持QoS的发布/订阅的消息推送协议,MQTT-SN是专门针对无线网络协议IEEE802.15.4的特点而进行改进的MQTT协议。 获取信息主要有拉取PULL和推送push两种,PULL需要不断申请,PUSH推送服务不需要Client端向Server端发送请求,而是由Server端根据需要主动向Client端发送消息的技术,可以使信息的获取更及时有效。目前推送技术的实现方式主要有短信方式、WAP 方式、多媒体邮件方式、轮询方式、持久链接等防止,智能终端多是采用持久连接方式。客户端通过釆用心跳方式来保持IP连接,大多需要官方的推送服务器。发布的消息进入一个先入先出的队列,订阅者接收一个或多个感兴趣的消息而不需要知道什么样的发布者发布的消息。这种发布者和订阅者的解耦解耦可以允许更好的可扩放性和更为动态的网络拓扑。开源搭建推送服务器有三种,一是C2DM云端推送需要google服务器,二是基于XMPP协议的推送方式,主要用到聊天系统中如框架androidpn成熟但电量流量大,三是MQTT协议的推送方式。

MQTT是一个轻量级的消息协议。从2014年12月IOIT大会上得到的消息,该协议已经被OASIS标准组织接收,成立了专门的工作组,以意味着该规范正式走向了标准化之路。 目前MQTT的标准组织官网:http://www.mqtt.org,里面列出了很多支持的软件相关资源。一个轻量级的MQTT服务器是:http://www.mosquitto.org,可以运行ARM/MIPS的嵌入式linux系统上,如OpenWRT。 很多客户端模块现在被Eclipse基金会接管,发展很快。所有的语言支持客户端在这里:http://git.eclipse.org/c/paho/

   每个 MQTT 命令的消息头都包含一个固定的报头2字节,可选包含可变报头和数据.

    MQTT在其固定头部为消息类型字段分配了四个比特位,去掉保留的全0和全1字段,包含14种消息.connect和CONNACK分别用于连接请求和确认,publish和PUBACK分别用于发布请求和确认,pubrec、PUBREL和PUBCOMP为QoS=2时所用,subscribe和subACK分别用于订阅请求与确认,UNSUBSCribeUNSUbBACK分别用于取消订阅请求与确认,pinhreq和PINGRESP分别用于维持连接请求与确认,DISCONNECT用于断开连接.


  客户端订阅:在连接到服务器后,客户端可以通过MQTT协议订阅指定话题,通过 SUBACK 服务器会返回一条消息给订阅者,订阅者可以通过这条消息确定消息是否订阅成功,不成功则重新订阅,成功服务器会将此话题上的消息发布给订阅者。订阅者接受到消息后,经过解析得到具体内容。话题是分层的,用/作为分隔符,+为一个层级,#为所有剩余层级。

完整的MQTT应用系统包括MQTT客户端和MQTT消息代理两部分,客户端使用MQTT协议与消息代理相连接,客户端向某个话题进行订阅,之后就可以收到发布到该话题的所有消息,客户端也可以发布消息到话题上进而发送到每个订阅者。如下所示。

mosquitto是一个开源的broker,下载地址http://mosquitto.org/download/ 安装mosquitto很简单,在xp下安装运行的时候可能会提示缺少某个dll下载这个dll即可。

1、首先到mosquitto的安装目录下,启动mosquitto服务 

2、开启2个cmd窗口一个运行:mosquitto_pub.exe -q 2 -t name -m “hello”(发布主题‘name’)记为发布窗口 另一个窗口运行:mosquitto_sub.exe -q 2 -t bing -t name(订阅主题‘name’)记为订阅窗口 首先开启的是发布主题的窗口,在订阅主题的窗口中能看到‘hello’的消息; 

3、测试mosquitto的服务质量,现在已经启动了2个窗口而且qos的值都为2; 

a、停止订阅主题的服务,在发布窗口中运行:mosquitto_pub.exe -q 2 -t name -m “hello2” 

b、在订阅窗口中运行:mosquitto_sub.exe -q 2 -t bing -t name;并没有出现预期中的‘hello2’ 在这个过程中没有修改mosquitto.conf文件;不知道什么地方出问题了;请大牛们指教

在raspberry上安装
http://mosquitto.org/2013/01/mosquitto-debian-repository/







  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子