一、接触的原因

  公司最近要求接手关于系统集成道闸的部分,其中系统和第三方系统是通过mqtt进行交互的。所以提前了解一下mqtt的基础概念。

二、mqtt的基本概念

  1. mqtt的定义

    Message Queuing Telemetry Transport,消息队列遥测传输协议。它是基于tcp/ip协议的,同时它的设计模式是采用的发布/订阅模式。

  2.mqtt协议中的成员:发布者、代理和订阅者。

   (1)发布者:发布者可以发布信息给其它客户端(订阅者)订阅,它发布的一个主题消息可以被订阅多次。

   (2)代理:代理又称为服务器,可以接受来自发布者或订阅者的连接,同时能够处理订阅者的订阅或退订请求,还能够将发布者发布的消息推送给订阅者。

   (3)订阅者:能够接受来自发布者发布的信息,能够退订。

  3.常用概念

   (1)订阅:订阅包含主题筛选器(Topic Filter)和服务质量(QoS)。订阅可以与会话关联,一个会话可以关联多个订阅。

     (2)会话:客户端与服务器建立连接就是一个会话。

     (3)主题:消息的类型,订阅者通过订阅的主题接受发布者发布的消息。

   (4)负载:订阅者接收到的消息。

   (5)服务质量:发布消息的质量,保证消息传递的次数。

      a.至多一次:只发送一次,消息可能会丢失,在传感器传输数据时,数据会定时刷新发送,数据的丢失不是那么的重要,可以使用该服务质量。

      b.至少一次:保证订阅者能够接收到发送的消息,这种情况下消息可能重复。

      c.只有一次:确保订阅者接收消息一次,不会重复也不会丢失。

三、安装EMQ服务器

  1.我使用的是windows 10版本的。点击这里进入下载页面。

  2.下载后解压,进入解压文件夹,在cmd中输入bin\emqx.cmd start启动服务器。

  3.我的服务器是安装在本地的,在Web中输入127.0.0.1:18083可以显示控制台。

  4.客户端测试工具-MQTTBox。

四、java测试订阅发布,在这里就不细述,网上博客很多。

五、相关博客

https://www.runoob.com/w3cnote/mqtt-intro.html

https://www.jianshu.com/p/e5cf0c1fd55c

https://blog.csdn.net/zhu_tianwei/article/details/49178167

mqtt第一次接触的更多相关文章

  1. 第一次接触终极事务处理——Hekaton

    在这篇文章里,我想给出如何与终极事务处理(Extreme Transaction Processing (XTP) )的第一次接触,即大家熟知的Hakaton.如果你想对XTP有个很好的概况认识,我推 ...

  2. [译]与TensorFlow的第一次接触(三)之聚类

    转自 [译]与TensorFlow的第一次接触(三)之聚类 2016.08.09 16:58* 字数 4316 阅读 7916评论 5喜欢 18 前一章节中介绍的线性回归是一种监督学习算法,我们使用数 ...

  3. 第一次接触FPGA至今,总结的宝贵经验

    从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表.抢答器.密码锁等实验时那个兴奋劲.当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus ...

  4. Hybird App(一)----第一次接触

    App你知道多少 一 什么是Native App 长处 缺点 二 什么是Web App 长处 缺点 三 什么是Hybrid App 长处 缺点 四 Web AppHybrid AppNative Ap ...

  5. 第一次接触C++------感触

    2018/09/24 上大学第一次接触C++,感觉还挺有趣的. C语言是计算机的一门语言,顾名思义,语言嘛,有它自己独特的语法. 第一次用C++敲代码,觉得还挺不错的,可以从中找到乐趣.咏梅老师布置的 ...

  6. 孤荷凌寒自学python第五十天第一次接触NoSql数据库_Firebase

    孤荷凌寒自学python第五十天第一次接触NoSql数据库_Firebase (完整学习过程屏幕记录视频地址在文末) 之前对关系型数据库的学习告一段落,虽然能力所限没有能够完全完成理想中的所有数据库操 ...

  7. 百度地图API的第一次接触

    因为项目的需求,第一次接触了百度API. 第一步:引用百度地图API的脚本 如果在局域网环境中,要把地图文件和js文件都要下载下来 <script type="text/javascr ...

  8. 第一次接触数据库(SQLite)

    第一次接触,学了创建列表 + 行的删除 + 内容的更改 + 删除列表 第一次接触要知道一些基本知识 NULL(SQL) = Nnoe(python)  #空值 INTEGER = int  #整数 R ...

  9. 今天第一次接触到typescript,看了第一个知识点就是变量的声明,来回忆回忆,做做笔记

    以前只用过JavaScript原生写网站特效,今天还是第一次听说typescript的,然后看了一下它的基本知识,感觉很像Java,真的太像了,但是又有不同点.很让我惊奇看到的第一个知识点就和以前不同 ...

随机推荐

  1. Django中的request到底有啥属性

    Django中的request到底有啥属性呢 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函 ...

  2. ArrayList源码分析-jdk11 (18.9)

    目录 1.概述 2.源码分析 2.1参数 2.2 构造方法 2.2.1 无参构造方法 2.2.2 构造空的具有特定初始容量值方法 2.2.3构造一个包含指定集合元素的列表,按照集合的迭代器返回它们的顺 ...

  3. JVM 专题十八:垃圾回收(二)垃圾回收相关算法

    1. 标记阶段 1.1 引用计数算法 1.1.1 对象存活判断 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象.只有被标记为己 ...

  4. flask 源码专题(九):flask扩展点

    1. 信号(源码) 信号,是在flask框架中为我们预留的钩子,让我们可以进行一些自定义操作. pip3 install blinker 2. 根据flask项目的请求流程来进行设置扩展点 中间件 # ...

  5. java 面向对象(十九):关键字:static

    static:静态的1.可以用来修饰的结构:主要用来修饰类的内部结构属性.方法.代码块.内部类2.static修饰属性:静态变量(或类变量) 2.1 属性,是否使用static修饰,又分为:静态属性 ...

  6. TortoiseGit 解决冲突的两种方法

    一.冲突发生原因: 用户A 有新提交 用户B 没有pull, 写新代码 ,pull , 提示有冲突   Solution: 1: stash save(把自己的代码隐藏存起来) -> 重新pul ...

  7. 【python大牛分享】python——接口自动化测试框架环境的使用

    本文总结分享介绍接口测试框架开发,环境使用python3+selenium3+unittest+ddt+requests测试框架及ddt数据驱动,采用Excel管理测试用例等集成测试数据功能,以及使用 ...

  8. Guava集合--新集合类型

    Guava引入了很多JDK没有的.但我们发现明显有用的新集合类型.这些新类型是为了和JDK集合框架共存,而没有往JDK集合抽象中硬塞其他概念.作为一般规则,Guava集合非常精准地遵循了JDK接口契约 ...

  9. 微信小程序开发部署

    一.开发准备 1,想要开发微信小程序,必须要有一个AppId,如果没有可以去注册一个.   https://mp.weixin.qq.com/进入注册页面,点击上方注册.   2,点击选择“小程序”出 ...

  10. SpringMVC集成Mybatis

    1.pom.xml中添加引入架包 <dependency> <groupId>mysql</groupId> <artifactId>mysql-con ...