mosquitto服务器的安装以及mqtt.fx软件的使用
一、MQTT描述
- MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的“轻量级”消息协议,由 IBM 发布。
- MQTT 可以被解释为一种低开销,低带宽占用的即时通讯协议,可以用极少的代码和带宽的为连接远程设备提供实时可靠的消息服务,它适用于硬件性能低下的远程设备以及网络状况糟糕的环境下,因此 MQTT 协议在 IoT(Internet of things,物联网),小型设备应用,移动应用等方面有较广泛的应用。
- IoT 设备要运作,就必须连接到互联网,设备才能相互协作,以及与后端服务协同工作。而互联网的基础网络协议是 TCP/IP,MQTT 协议是基于 TCP/IP 协议栈而构建的,因此它已经慢慢的已经成为了 IoT 通讯的标准。
二、MQTT的基本特点
1.MQTT是一种发布/订阅传输协议,基本原理和实现如下;

MQTT 协议提供一对多的消息发布,可以解除应用程序耦合,信息冗余小。该协议需要客户端和服务端,而协议中主要有三种身份:发布者(Publisher)、代理(Broker,服务器)、订阅者(Subscriber)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,而消息发布者可以同时是订阅者,实现了生产者与消费者的脱耦。
2.使用 TCP/IP 提供网络连接,提供有序、无损、双向连接;
MQTT 是一种连接协议,它指定了如何组织数据字节并通过 TCP/IP 网络传输它们。设备联网,也需要连接到互联网中,在大万维的世界中,TCP 如同汽车,有轮子就能用来运输数据,MQTT 就像是交通规则。在网络模型中,TCP是传输层协议,而 MQTT是在应用层,在 TCP 的上层,因此 MQTT 也是基于这个而构建的,提高了可靠性。
3.对负载内容屏蔽的消息传输;
可以对消息订阅者所接受到的内容有所屏蔽。
4.具体有三种消息发布的服务质量:
至多一次,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
至少一次,确保消息到达,但消息重复可能会发生。
只有一次,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
5.小型传输,开销小,固定长度的头部是 2 字节,协议交换最小化,以降低网络流量;
整体上协议可拆分为:固定头部+可变头部+消息体,这就是为什么在介绍里说它非常适合"在物联网领域,传感器与服务器的通信,信息的收集"。
6.使用Last Will和Testament特性通知有关各方客户端异常中断的机制;
Last Will:即遗言机制,用于通知同一主题下的其他设备发送遗言的设备已经断开了连接。
Testament:遗嘱机制,功能类似于Last Will。
三、在腾讯云上安装mosquitto服务器。
3.1. 在云服务器上,下载并且安装mosquitto服务器。
下载地址:https://mosquitto.org/download/
3.2. 配置mosquitto的环境变量。
找到mosquitto的安装目录

系统环境变量Path 中添加mosquitto安装的路径:

> 在path下添加mosquitto的安装路径
C:\Program Files\mosquitto (记得前面加 ;)-----和前面的区别开。
以上操作完毕后,就可以在任何盘符以及文件夹下使用mosquitto的文件夹中文件,方便操作。
3.3 修改mosquitto服务器的用户名和密码。发布或者订阅信息时,必须要输入用户名和密码,增加安全性。
1.打开mosquitto.conf文件,找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录,默认是true。打开此项配置(将前面的 # 号去掉)之后将其值改为true
修改前:#allow_anonymous
修改后:allow_anonymous false
2: 找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里。打开此配置并指定pwfile.example文件路劲(注意是绝对路劲)
修改前:#password_file
修改后:password_file /etc/mosquitto/pwfile.example (这里的地址根据自己文件实际位置填写)
3: 创建用户名和密码、打开命令窗口 键入如下命令:
mosquitto_passwd -c /etc/mosquitto/pwfile.example admin
提示连续两次输入密码、创建成功。命令解释: -c 创建一个用户、/etc/mosquitto/pwfile.example 是将用户创建到 pwfile.example 文件中、admin 是用户名。
4: 创建mosquitto用户。在命令窗口键入如下命令:
mosquitto_passwd /etc/mosquitto/pwfile.example mosquitto
同样连续会提示连续输入两次密码。注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。
至此两个用户创建成功,此时如果查看 pwfile.example 文件会发现其中多了两个用户。
3.4. mosquitto 文件的含义
在mosquitto 文件夹下有以下文件会使用到:
* 3.4.1 mosquitto.conf:开启服务器的进程
启动cmd,运行以下指令:(如果没配置环境变量,进入mosquitto 安装的目录,再执行如下命令)
[`mosquitto -c mosquitto.conf`]
* 3.4.2 mosquitto_sub:开启订阅信息
启动cmd,运行以下指令:如果没配置环境变量,进入mosquitto 安装的目录,再执行如下命令).开启名称为“topic”的订阅。
[`mosquitto_sub -t topic -h "111.223.231.22" -u "admin" -P "admin123"`]
-t: "订阅的信息名称"
-u:"用户名"
-P:"登录密码"
-h:"服务器的IP地址"
* 3.4.3 mosquitto_pub:开启发布信息
启动cmd,运行以下指令:如果没配置环境变量,进入mosquitto 安装的目录,再执行如下命令).开启名称为“topic”的信息发布。
[`mosquitto_pub -t topic -h "111.223.231.22" -u "admin" -P "admin123" -m "{"sensorDatas":[{"flag":"Y1","value":"11"}]}"`]
-t: "订阅的信息名称"
-u:"用户名"
-P:"登录密码"
-h:"服务器的IP地址"
-m:"发布的信息,信息为json格式"
注意!! 在windows的cmd中是无法识别""这个符号的,必须输入改成\".以上输入就变成了。
[`mosquitto_pub -t topic -h "111.223.231.22" -u "admin" -P "admin123" -m \"{\"sensorDatas\":[{\"flag\":\"Y1\",\"value\":\"11\"}]}\"`]
但是在钡铼BL102网关中或者mqtt.fx软件中就不用如此输入了。
当发布以上消息后,同IP以及topic的订阅端就可以接收到信息了。
四、mqtt.fx的使用。
4.1 下载并且安装mqtt.fx
下载地址: http://mqttfx.jensd.de/index.php/download
4.2 点击“设置配置文件”进行设置,填写网络IP,用户名,密码等进行连接。


4.3连接完毕后,输入“订阅主题”或者“发布主题+订阅信息”,即可对MQTT服务器进行订阅/发布信息。
mosquitto服务器的安装以及mqtt.fx软件的使用的更多相关文章
- 使用钡铼BL102网关连接西门子S7-1200PLC 以及mosquitto服务器方法
一.软硬件描述 西门子PLC S7-1215 钡铼BL102网关 mosquitto MQTT服务器(腾讯云上搭建) 可以上网的路由器一套 二.需要使用的软件. 西门子Portal v15.1 (西门 ...
- 极简】如何在服务器上安装SSL证书?
本文适合任何人了解,图形化操作.下面以腾讯云为例,并且服务器(linux)也安装了宝塔面板. 1.登陆腾讯云账号进入控制台,找到SSL的产品 2.按要求申请并填写表单,记住私钥密码 3.提交后,待腾讯 ...
- 图解连接阿里云(一)创建阿里云物联网平台产品和设备,使用MQTT.fx快速体验
1. 打开 https://www.aliyun.com/ 注册账号 2.注册账号登录后点击控制台 3. 在下图1处输入物联网平台,会弹出2处所示物联网平台的入口,点击红色箭头所示处,进入物联网平 ...
- Ubuntu 16.04安装测试MQTT Mosquitto
环境:Ubuntu 16.04 介绍MQTT MQTT是一种机器到机器的消息传递协议,旨在为“物联网”设备提供轻量级的发布/订阅通信.它通常用于地理跟踪车队,家庭自动化,环境传感器网络和公用事业规模数 ...
- mqtt mosquitto 源码安装
下载地址 ububtu : wget https://codeload.github.com/eclipse/mosquitto/zip/master 安装依赖 sudo apt-get insta ...
- MQTT的学习研究(十六) MQTT的Mosquitto的window安装部署
在mqtt的官方网站,有许多mqtt,其中:MosquittoAn Open Source MQTT server with C, C++, Python and Javascript clients ...
- 订阅mosquitto服务器状态各主题
mosquitto_sub -v -t \$SYS/broker/client MQTT客户端可以通过订阅位于$SYS层次下的主题来查看mosquitto服务器的状态信息.标记为Static的主题对于 ...
- Mosquitto服务器的搭建以及SSL/TLS安全通信配置
Mosquitto服务器的搭建以及SSL/TLS安全通信配置 摘自:https://segmentfault.com/a/1190000005079300 openhab raspberry-pi ...
- Centos 7.0_64bit 下安装 Zabbix server 3.0服务器的安装
一.关闭selinux 修改配置文件/ etc / selinux / config,将SELINU置为禁用(disabled) vim /etc/selinux/config # This ...
随机推荐
- SVPWM实现概述
SVPWM是FOC的基础,其实现流程大致如下所示: 1. 判断合成矢量所在扇区 2. 计算相邻矢量作用时间 3. 计算各桥臂导通时间 4. 得到各相PWM占空比 5. 更新相应寄存器值 SVPWM目 ...
- mybatis缓存-二级缓存
1.2 二级缓存 [官方声明] => 如何开启[二级缓存] 默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存. 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行 ...
- jinja2.exceptions.TemplateNotFound 报错处理
一.检查模板文件夹是否正确. 遇到这个问题,首先需要检查你的模板文件夹命名是否规范,Flask默认会在工程下寻找templates文件夹,这个是默认配置,不能写成template或者其他名字.当然,如 ...
- Idea集成CSSO插件压缩css文件
首先需要本地已安装node环境,并且csso-cli已通过npm安装到本地目录,只要能找到就行. 1. 打开Settings配置,确认图中的 File Watchers 插件是否已存在,如果不存在,去 ...
- java-Map集合hei
/* Map集合的特点: Map集合市一个双列集合,一个元素包含两个值:一个key,一个value Map集合中的元素,key和value的数据类型可以相同,也可以不同 Map集合中的元素,key不允 ...
- Numpy求解线性方程组
Numpy求解线性方程组 对于Ax=b,已知A和b,怎么算出x? 1. 引入包 2. 求解 验证
- 还能这样?把 Python 自动翻译成 C++
作者:byronhe,腾讯 WXG 开发工程师 一.问题背景 随着深度学习的广泛应用,在搜索引擎/推荐系统/机器视觉等业务系统中,越来越多的深度学习模型部署到线上服务. 机器学习模型在离线训练时,一般 ...
- 妙趣横生的HTML5 Page Visibility API
起因 最近浏览36kr 的网页的时候偶然发现一个有趣的情况:当浏览器Tab 处于非当前页的时候,36kr 的标题栏会自动换成可爱的大白字符形象.Jeff 在第一次看到的时候就知道这种效果是通过HTML ...
- 【Android开发】Coding + git命令行基本使用
上传代码 进入本地仓库的目录. cd ... 查看仓库链接 : git remote -v 如果没有,则添加url链接 : git remote add testName https://git.co ...
- 使用element UI el-upload组件实现视频文件上传及上传进度显示方法总结
实现效果: 上传中: 上传完成: 代码: <el-form-item label="视频上传" prop="Video"> <!-- acti ...
