前言本篇是MQTT-SN 1.2协议最后一篇翻译了,主要涉及实现要点,很简短。需要支持QoS 值为 -1QoS虽默认设置有0,1,2三个值,但还有一种情况其值为-1。来自客户端的PUBLISH消息中若QoS为-1的情况下,此刻客户端不会关心和网关有没有建立连接,也不在乎时间点,有消息就需要发出去。透...
分类:
其他好文 时间:
2015-07-13 13:34:40
阅读次数:
125
前言记忆不太好的时候,只能翻看以前的文章/笔记重新温习一遍,但找不到MQTT协议有关订阅部分的描述,好不容易从Evernote中找到贴出来,这样整个MQTT协议笔记,就比较齐全了。SUBSCRIBE一般来讲,客户端在成功建立TCP连接之后,发送CONNECT消息,在得到服务器端授权允许建立彼此连接的...
分类:
其他好文 时间:
2015-07-13 12:05:43
阅读次数:
111
前言MQTT协议诞生之初,就未曾考虑通过HTTP传输。这也正常,网络受限、不稳定网络不太适合HTTP(2G/3G网络大家使用WAP不也OK嘛)。在网络较为充裕的桌面端而言,虽纯文本对比二进制而言没多大优势,受制于历史遗留和使用习惯,以及一大票传统基础设施方便控制事宜,传统互联网/企业型应用,HTTP...
分类:
Web程序 时间:
2015-07-13 12:04:29
阅读次数:
163
MQTT协议笔记之发布流程前言这次要讲到客户端/服务器的发布消息行为,与PUBLISH相关的消息类型,会在这里看到。PUBLISH客户端发布消息经由服务器分发到所有对应的订阅者那里。一个订阅者可以订阅若干个主题(Topic name),但一个PUBLISH消息只能拥有一个主题。消息架构一览:Desc...
分类:
其他好文 时间:
2015-07-13 12:02:26
阅读次数:
180
前言MQTT协议专注于网络、资源受限环境,建立之初不曾考虑WEB环境,倒也正常。虽然如此,但不代表它不适合HTML5环境。HTML5 Websocket是建立在TCP基础上的双通道通信,和TCP通信方式很类似,适用于WEB浏览器环境。虽然MQTT基因层面选择了TCP作为通信通道,但我们添加个编解码方...
分类:
Web程序 时间:
2015-07-13 12:00:18
阅读次数:
147
前言前面的笔记已把所有消息类型都过了一遍,这里从消息流的角度尝试解读一下。网络故障在任何网络环境下,都会出现一方连接失败,比如离开公司大门那一刻没有了WIFI信号。但持续连接的另一端-服务器可能不能立即知道对方已断开。类似网络异常情况,都有可能在消息发送的过程中出现,消息发送出去,就丢失了。MQTT...
分类:
其他好文 时间:
2015-07-13 11:53:20
阅读次数:
156
前言记忆不太好的时候,只能翻看以前的文章/笔记重新温习一遍,但找不到MQTT协议有关订阅部分的描述,好不容易从Evernote中找到贴出来,这样整个MQTT协议笔记,就比较齐全了。SUBSCRIBE一般来讲,客户端在成功建立TCP连接之后,发送CONNECT消息,在得到服务器端授权允许建立彼此连接的...
分类:
其他好文 时间:
2015-07-13 11:51:44
阅读次数:
97
前言MQTT定义了物联网传输协议,其标准倾向于原始TCP实现。构建于TCP的上层协议堆栈,诸如HTTP等,在空间上多了一些处理路径,稍微耗费了CPU和内存,虽看似微乎其微,但对很多处理能力不足的嵌入式设备而言,选择原始的TCP却是最好的选择。但单纯TCP不是所有物件联网的最佳选择,提供构建与TCP基...
分类:
其他好文 时间:
2015-07-13 11:46:39
阅读次数:
366
前言本篇会把连接(CONNECT)、心跳(PINGREQ/PINGRESP)、确认(CONNACK)、断开连接(DISCONNECT)和在一起。CONNECT像前面所说,MQTT有关字符串部分采用的修改版的UTF-8编码,CONNECT可变头部中协议名称、消息体都是采用修改版的UTF-8编码。前面基...
分类:
其他好文 时间:
2015-07-13 11:42:29
阅读次数:
346
MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。值得一提的是mqtt提供三种不同质量的消息服务:“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一....
分类:
其他好文 时间:
2015-07-02 14:01:23
阅读次数:
141