2.3 MQTT
MQTT(Message Queue Telemetry Transport),遥测传输协议:其主要提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),属于物联网(Internet of Thing)的一个传输协议.
大象无形,大音希声
专业,专心,专注
展开
-
[14]用NetBalancer模拟网络超时或者差网络状态来测试MQTT协议
我们在测试MQTT的文件持久化(Persistence)的功能或者Last Will或者的功能的时候或者MQTT连接超时的,或者重连的情况下,我们要模拟一种十分的差的网络状态甚至断网的状态,因为直接拔网线或者禁用网卡,MQTT的TCP连接会马上检测到,从而达不到我们的测试的目的。这里笔者推荐了另外一种模拟网络差的方法,我们可以用MQTT来传输一个比较大的二进制文件,但是把网络传输的速度降低,那么应该如何做呢?有一款软件能够帮助我们,那就是NetBalance。原创 2017-08-15 23:04:32 · 2259 阅读 · 0 评论 -
[13]MQTT的Payload(负载的最大值)是多少?
我们在学习使用MQTT协议的时候,有的时候我们需要通过MQTT进行一些二进制的传送,那么请问MQTT进行二进制的传送的时候,最大支持多少个字节? 网上答案五花八门,有说64kb的,有说16kb的,有说256kb,有说256M的, 那么到底是多少呢? 其实答案很简单,就是268435455 bytes,为什么呢? 因为Mosquito的MQTT服务器里面的一个配置文件就是这样说的。# This原创 2017-09-15 22:50:34 · 25238 阅读 · 2 评论 -
[12]MQTT mosquitto 单向SSL认证的配置方式
我们知道,MQTT mosquitto支持单向和双向的SSL认证,首先咱们来看一下单项认证的配置文件应该如何配置。所谓的单向SSL证书,指的是,MQTT的客户端访问MQTT的服务器端的时候,如果用到了SSL加密通信,在建立SSL加密通信前,客户端需要通过证书来验证服务端是否是可信任的,所以客户端会把服务器端传过来的证书和自身的已经的在某种途径下得到的服务器端CA证书或者服务器证书进行比较,如果匹配成功,则运行建立可信任的安全的SSL连接。原创 2015-05-31 22:47:05 · 15638 阅读 · 2 评论 -
[11]MQTT mosquitto 双向SSL认证配置方式
我们知道,MQTT mosquitto支持单项和双向的SSL认证,在上一节中,我们已经给大家分享了单向的SSL如何配置,在这一节中咱们来看一下双向的SSL认证的配置文件应该如何配置? 那么什么是双向的SSL认证呢?所谓的双向的SSL认证,打个通俗的比方就是,在进行SSL加密通信前,通信的双方(在咱们的例子中是mosquitto服务器端和MQTT客户端(消息的发送或者接收端))需要相互验证各自的证书是否合法。比如,是否是一个合法的CA颁发的等等。原创 2015-05-31 23:07:16 · 8567 阅读 · 0 评论 -
[02] MQTT,mosquitto,Eclipse Paho----mosquitto使用扫盲
既然要说后续系统都是围绕MQTT,mosquitto,Eclipse Paho展开,则在这里有必要先给大家简单说一下mosquitto的基本使用,扫一下盲。给大家简单介绍一下mosquitto在window系统下如何安装和启动。原创 2015-06-01 23:33:23 · 8841 阅读 · 1 评论 -
[01] MQTT,mosquitto,Eclipse Paho----入门
MQTT,mosquitto,Eclipse Paho这三个单词陌生而又神秘。那么这三个单词究竟是什么意思,代表了什么技术,他们之间有关联吗?不着急,请听笔者慢慢给大家分享。原创 2015-06-01 22:56:43 · 11867 阅读 · 1 评论 -
[03] MQTT,mosquitto,Eclipse Paho---如何使用 Eclipse Paho MQTT工具来发送订阅MQTT消息?
在上两节,笔者主要介绍了 MQTT,mosquitto,Eclipse Paho的基本概念已经如何安装mosquitto. 在这个章节我们就来看看如何用 Eclipse Paho MQTT工具来发送接收MQTT消息。Eclipse Paho MQTT工具是一个基于Java的Eclipse桌面客户端程序,其底层的和MQTT服务器进行的交互的java类库就是Eclipse Paho java库。假设我们在本机(127.0.0.1)已经启动了一个mosquitto MQTT服务器,其端口为1883。如何使用 Ec原创 2015-06-10 22:47:54 · 21105 阅读 · 3 评论 -
[04] MQTT,mosquitto,Eclipse Paho---MQTT消息格式分析概述
我们知道MQTT是一个物联网协议的一个规范,MQTT的协议最新的两个版本是:3.1.1和3.1.0(1) 3.1.0的规范如下http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html(2) 3.1.1的规范如下http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718029规范主要描述了消息的通用格式,消息的命令,消原创 2015-06-12 12:51:14 · 5029 阅读 · 1 评论 -
[05] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之CONNECT消息格式分析
在“[3] MQTT,mosquitto,Eclipse Paho---如何使用 Eclipse Paho MQTT工具来发送订阅MQTT消息?”一文中我已经和大家简单讲述了如何使用Eclipse Paho MQTT。那么当我们点击“Connect”按钮,究竟在TCP协议层发生了什么?如何通过MQTT规定的协议和TCP的二进制数据进行对比,从而更加深入的学习MQTT的消息格式呢?笔者将带领大家以CONNECT消息格式为例子,分析第一个MQTT的消息格式, MQTT的CONNECT消息主要用来在客户端和服务端原创 2015-06-12 23:20:29 · 7317 阅读 · 3 评论 -
[07] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之CONNACK消息分析
在上节中( [6] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之CONNECT消息格式分析)我们分析了CONNECT消息格式,我们知道CONNECT消息是客户端发送出去的,作为对客户端的连接请求,服务器端同样会有一个消息的返回,这个消息就是CONNACK的消息。我们在发出去CONNECT消息后,如果WireShark抓包工具依然开启的话,将会抓到类似于下面的TCP消息,其16进制为:20 02 00 00,那么其代表什么意思呢?原创 2015-06-14 11:55:09 · 5580 阅读 · 0 评论 -
[08] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之SUBSCRIBE(消息订阅)消息分析
我们在上几节的协议分析中,发送连接的请求用的是Eclipse Paho MQTT工具,那么笔者这一次改一下,咱们这次用代码来发送Subscribe的MQTT消息,请注意,下面的代码是基于Eclipse Paho Java API之上的代码,在运行下面的代码前,请先去下载Eclipse Paho Java库,其下载地址为:https://www.eclipse.org/paho/clients/java/. 下面我们正式切入正题。原创 2015-06-16 12:36:59 · 16207 阅读 · 8 评论 -
[09] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之SUBACK(消息订阅应答)消息分析
在上一节中(MQTT消息格式之SUBSCRIBE(消息订阅)消息分析),客户端发送了订阅的消息,这个时候,服务器端收到订阅主题的MQTT消息之后,肯定需要给一个应答,这个应答信息就是SUBACK(消息订阅应答)。消息订阅应答相对来说比较简单。原创 2015-06-17 22:51:30 · 4867 阅读 · 2 评论 -
[10] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之Publication(消息发布)之QoS==0
在MQTT协议中,消息的发布相对来说比较复杂一些,因为里面牵涉到了QoS(服务质量)和Retained(是否正服务器端存储消息)已经Persistence(当网络故障,在本地客户端存储信息)。其中最为灵活的是QoS的取值,QoS取不同值,就有不同的消息流,也就对应不同了消息类型。首先咱们来讨论QoS等于0的情况。QoS等于0意味着只发送一次,而不管接收方是否收到。import org.ec原创 2016-07-05 00:23:04 · 3916 阅读 · 4 评论