当前位置: 首页 > news >正文

EMQX服务器的搭建,实现本地机和虚拟机之间的MQTT通信(详细教程)

前言

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。
MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器(EMQX),消息发布者可以同时是订阅者。MQTT协议的实现方式为:
在这里插入图片描述
本次实验通过搭建EMQX服务器,实现本地机和虚拟机之间的MQTT通信。

准备工具

1.一台物理机,博主的物理机是Windows10
2.VMware
3.Ubuntu镜像

虚拟机的创建请参考这篇文章
Ubuntu的安装可以参考这篇文章
以上文中均有工具获取方式,大家可以自行网盘下载

虚拟机Ubuntu配置EMQX

我们打开Ubuntu的浏览器,输入以下网址

https://www.emqx.com/zh/downloads-and-install/broker?os=Ubuntu

然后进入 EMQX 的下载页面,根据网站中提供的命令下载安装EMQX服务器
在这里插入图片描述

1:配置EMQX Apt源

curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash

在这里插入图片描述

如果是你的Ubuntu是刚安装上的,可能会提示你’curl’命令找不到,你可以根据它的提示安装curl

在这里插入图片描述

2:安装EMQX

sudo apt-get install emqx

在这里插入图片描述

3:启动EMQX

在这里插入图片描述

3:登录EMQX服务器

Ubuntu上使用浏览器访问emqx服务器(用户名admin;密码:public)
访问地址

http://localhost:18083

在这里插入图片描述

登陆后会提示你修改密码,测试用的密码可以简单易记些

在这里插入图片描述

输入ifconfig查看Ubuntu的IP地址,在Ubuntu的EMQX服务器中输入Ubuntu的IP地址,点击连接即可
在这里插入图片描述在这里插入图片描述

至此Ubuntu上的EMQX服务器就已经启动完成了,接下来配置物理机的服务器。

物理机连接EMQX服务器

这里介绍两种方式去连接Ubuntu上的EMQX服务器

方式一(无需安装,直接解压使用)

链接:https://pan.baidu.com/s/1XaPkWTI_AtYmWVuMD8d5HQ?pwd=n99m
提取码:n99m

1:启动本地emqx

解压完成后我们找到bin目录,在该目录下可以新建一个cmd.bat文件,里面的内容是cmd.exe,这样我们就可以双击cmd.bat,打开命令提示行,便于操作。
在这里插入图片描述

双击cmd.bat文件,出现命令提示行,输入

emqx start

在这里插入图片描述没有报错并且返回了上一级目录说明启动成功!接着测试下关闭服务
在当前目录下输入

cd bin
//返回上一级目录,在bin目录下输入
emqx stop

在这里插入图片描述

弹出ok说明服务器可以正常启动关闭,我们emqx start 开启服务,然后在物理机浏览器访问emqx服务器(用户名admin;密码:public)

http://localhost:18083

在这里插入图片描述

登录后如果需要修改密码,按要求修改即可;如果是英文界面,你可以设置成中文
在这里插入图片描述

2:连接Ubuntu的EMQX服务器

在这里插入图片描述

方式二(官网下载安装MQTTX工具)

1:下载MQTTX工具

官网地址

https://mqttx.app/zh/downloads

选择合适的版本即可,我这里用的是Windows64位

在这里插入图片描述

2:连接Ubuntu的EMQX服务器

下载后直接安装即可,安装步骤比较简单,基本都是下一步,在这里不再赘述。

Ubuntu终端输入ifconfig查看IP地址,然后将Ubuntu的IP地址输入到物理机的MQTTX工具中(前提是Ubuntu上的EMQX服务器已经配置好Ubuntu的IP地址了),点击连接即可。

在这里插入图片描述

以上两种方式均可实现连接EMQX服务器。接下来就可以通过修改订阅/发布 的主题进行通话啦!

互发消息测试

物理机上我们使用MQTTX工具进行配置,目前我的物理机上已经完成对Ubuntu的EMQX服务器的连接。

1:配置Ubuntu的EMQX服务器

打开Ubuntu服务器的客户端,Ubuntu上我们配置订阅主题为 PC(也就是物理机上的发布主题),点击订阅;Ubuntu发布主题为EMQX(也就是物理机上的订阅主题),点击发布。

在这里插入图片描述

2:配置物理机的MQTTX工具

物理机上我们同样打开客户端,物理机配置订阅主题为EMQX(也就是Ubuntu的发布主题)物理机发布主题我们修改为PC(也就是Ubuntu的订阅主题)

在这里插入图片描述在这里插入图片描述

此时在Ubuntu上点击发送,物理机上就可以收到主题为EMQX的信息,还可以用PC的主题发送给Ubuntu订阅的PC
在这里插入图片描述

在这里插入图片描述

另外还可以新建订阅

在这里插入图片描述

当然你也可以使用“物理机连接EMQX的方式一” 实现相互通信
在这里插入图片描述

3:一点问题

发现在物理机新建订阅时,需要先删除物理机之前的订阅主题才能在物理机的MQTTX界面看到发送的消息(Ubuntu上发送给物理机的信息一直是可以收到并看见的,但是Ubuntu上一直是可以正常收发信息的。)不知道为什么,如有指点,十分感谢。

在这里插入图片描述

物理机删除之前订阅的主题后,在新订阅的主题对话框中可以正常看到收发的信息

在这里插入图片描述

相关文章:

EMQX服务器的搭建,实现本地机和虚拟机之间的MQTT通信(详细教程)

前言 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。 MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(…...

cordova的使用

环境 Cordova 是一个跨平台的开发框架,它允许开发者使用 HTML、CSS 和 JavaScript 创建移动应用。Cordova 的不同版本可能会有不同的环境要求。以下是 Cordova 10 和 Cordova 12 在开发 Android 和 iOS 应用时的环境要求的对比总结。 1. Cordova 10 环境要求 And…...

三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力

本文深入探讨Transformer模型中三种关键的注意力机制:自注意力、交叉注意力和因果自注意力。这些机制是GPT-4、Llama等大型语言模型(LLMs)的核心组件。通过理解这些注意力机制,我们可以更好地把握这些模型的工作原理和应用潜力。 …...

《使用Gin框架构建分布式应用》阅读笔记:p20-p31

《用Gin框架构建分布式应用》学习第2天,p20-p31总结,总计12页。 一、技术总结 1.第一个gin程序 // main.go package mainimport "github.com/gin-gonic/gin"func main() {r : gin.Default()r.GET("/", func(c *gin.Context) {c.J…...

如何修改MacOS的终端的配色和linux一样

目录 一、配色方案 二、修改配色 一、配色方案 一键更改MacOS的终端配色文件,目的就是为了让他从原本的样子变成XShell里面显示的配色样式。文件夹为蓝色,链接文件为青色,可执行文件为绿色之类的。 linux默认配色方案是"exfxcxdxbxege…...

基于百度智能体开发爱情三十六计

基于百度智能体开发爱情三十六计 文章目录 基于百度智能体开发爱情三十六计1. 爱情三十六计智能体2. 三十六计开发创意3. 智能体开发实践3.1 基础配置3.2 进阶配置3.3 调优心得3.4可能会遇到的问题 4. 为什么选择文心智能体平台 1. 爱情三十六计智能体 爱情三十六计 是一款基于…...

计算机网络:计算机网络概述 —— 描述计算机网络的参数

文章目录 数据量性能指标速率带宽数据传输速率 吞吐量时延分析时延问题 时延带宽积往返时间利用率丢包率丢包的情况 抖动可用性可靠性安全性 计算机网络是现代信息社会的基础设施,其性能和可靠性对各类应用至关重要。为了理解和优化计算机网络,我们需要深…...

Windows 11系统选项卡详解:从新手到专家的操作指南

Windows 11的“系统”选项卡是管理电脑硬件和软件设置的中心。 基础操作 1. 查看和编辑系统信息 打开“开始”菜单,点击“设置”图标。 在“设置”窗口中,选择左侧的“系统”选项卡。 点击“关于”。 在这里,我们可以查看系统规格。要编辑设…...

乐鑫ESP32-S3无线方案,AI大模型中控屏智能升级,提升智能家居用户体验

在这个由数据驱动的时代,人工智能正以其前所未有的速度和规模改变着我们的世界。随着技术的不断进步,AI已经从科幻小说中的概念,转变为我们日常生活中不可或缺的一部分。 特别是在智能家居领域,AI的应用已成为提升生活质量、增强…...

postman变量,断言,参数化

环境变量 1.创建环境变量 正式环境是错误的,方便验证环境变化 2.在请求中添加变量 3.运行前选择环境变量 全局变量 能够在任何接口访问的变量 console中打印日志 console.log(responseBody);//将数据解析为json格式 var data JSON.parse(responseBody); conso…...

Nginx实战指南:基础知识、配置详解及最佳实践全攻略

背景 在Java系统实现过程中,我们不可避免地会借助大量开源功能组件。然而,这些组件往往功能丰富且体系庞大,官方文档常常详尽至数百页。而在实际项目中,我们可能仅需使用其中的一小部分功能,这就造成了一个挑战&#…...

百度搜索引擎(SEO)优化师的未来将何去何从?

百度搜索引擎(SEO)优化师的未来将何去何从? 作为一名SEO专家(林汉文),在过去的三年里,我深感自己与快速变化的百度SEO圈子逐渐脱节。然而,在最近重拾旧业,重新审视SEO特…...

如何在UE5中创建加载屏幕(开场动画)?

第一步: 首先在虚幻商城安装好Async Loading Screen,并且在项目的插件中勾选好。 第二步: 确保准备好所需要的素材: 1)开头的动画视频 2)关卡加载图片 3)准备至少两个关卡 第三步&#xff1a…...

【WebGIS】Cesium:地形加载

在 Cesium 中,地形数据用于提供三维场景的高度信息,使得地球表面的细节更加逼真。地形加载是 Cesium 应用中的关键功能,支持各种地形源和格式,如 Cesium Ion 服务、Terrain Server 等。本文将系统介绍如何在 Cesium 中加载、配置、…...

前端程序员策略:使用框架还是纯JavaScript?

前端程序员策略:使用框架还是纯JavaScript? 在现代Web开发领域,JavaScript语言占据着举足轻重的地位,而基于JavaScript的前端框架更是层出不穷,为开发者提供了丰富的选择。 然而,面对琳琅满目的框架&…...

npm 配置淘宝镜像

为了加速 npm 包的下载速度,尤其是在中国地区,配置淘宝的 npm 镜像(也称为 cnpm 镜像)是一个常见的方法。以下是如何配置淘宝 npm 镜像的步骤: 1. 使用 npm 命令配置镜像 你可以直接使用 npm 命令来设置淘宝的 npm 镜…...

C++ include头文件的顺序以及双引号““和尖括号<>的区别

本文章进一步详细解释 #include 的头文件包含机制&#xff0c;包括搜索路径的处理、双引号 "" 和尖括号 <> 在不同环境中的使用差异&#xff0c;以及它们的底层机制。 1. 头文件包含机制和搜索路径详解 #include 是一个预处理指令&#xff0c;用于在编译前将…...

Flutter鸿蒙版本灵活使用方法间的回调处理复杂化的逻辑

目录 写在前面 示例代码 main.dart: one.dart: 代码解析 1. 主入口 main 函数 2. MyApp 类 3. CallbackExample 类 4. onok 函数 5. one 函数 写在后面 写在前面 在 Flutter 开发中&#xff0c;灵活使用函数之间的回调带来了多种好处&#xff0c;包括提高可重用性、…...

视频号直播自动回复与循环发送话术-自动化插件

我们在做视频号直播的时候&#xff0c;会有这种自动回复咨询问题的功能 唯一客服浏览器插件现在就支持&#xff0c;在视频号直播后台&#xff0c;自动化回复用户问题&#xff0c;以及循环发送我们的介绍话术...

springcloud之服务集群注册与发现 Eureka

前言 1&#xff1a;对于能提供完整领域服务接口功能的RPC而言&#xff0c;例如&#xff1b;gRPC、Thrift、Dubbo等&#xff0c;服务的注册与发现都是核心功能中非常重要的一环&#xff0c;使得微服务得到统一管理。 2&#xff1a;在分布式领域中有个著名的CAP理论&#xff1b;…...

C++:模拟实现list

目录 节点 迭代器 整体框架 构造函数 empty_init 拷贝构造 赋值重载 析构函数 clear insert erase push_back和push_front pop_back和push_front size empty Print_Container 节点 对于链表节点&#xff0c;我们需要一个数据、一个前驱指针、一个后继指针来维护…...

解锁5 大无水印热门短视频素材库

想让你的抖音视频更出彩吗&#xff1f;想知道那些爆款视频的素材源头吗&#xff1f;快来了解以下 5 个超棒的视频素材下载平台。 蛙学网 国内的视频素材佼佼者&#xff0c;有大量 4K 高清且无水印的素材&#xff0c;自然风光、情感生活等类别任你选&#xff0c;不少还免费&…...

【电商购物管理系统】Python+Django网页界面平台+商品管理+数据库

一、介绍 电商购物管理系统&#xff0c;本系统前端使用HTML、CSS、BootStrap等技术搭建前端界面&#xff0c;后端使用Django框架处理用户的逻辑请求。主要功能有&#xff1a; 管理员登录与管理&#xff1a;管理员可以登录后台&#xff0c;对用户和商品进行增删改查的操作。用…...

AD9248驱动的简易示波器设计——FPGA学习笔记21

一、原理 我们这里设计的是显示 1024 个波形数据点&#xff0c; 在绘制每一行的图像的时候&#xff0c; 比对每一个数据和 VS 的 Y 坐标是否相等&#xff0c; 如果相等就绘制这个波形点。 这样我们就能完成 1024 个波形点在整个屏幕的显示。 二、乒乓操作 可见FPGA实现双口RAM…...

微软十月补丁星期二发现了 118 个漏洞

微软将在2024 年 10 月补丁星期二解决 118 个漏洞&#xff0c;并且有证据表明发布的 5 个漏洞被野蛮利用和/或公开披露&#xff0c;尽管微软尚未将其中任何一个漏洞评定为严重漏洞。 在这五个漏洞中&#xff0c;微软列出了两个已被利用的漏洞&#xff0c;这两个漏洞现在都已列…...

到底是微服务,还是SOA?

引言&#xff1a;大概正式工作有5年了&#xff0c;换了三个大厂【也是真特么世道艰难&#xff0c;中国互联网人才饱和了】。基本上每个公司有的架构都不太相同&#xff0c;干过TOC和TOB的业务&#xff0c;但是大家用的架构都不太相同。有坚持ALL in one的SB&#xff0c;最后服务…...

JDK17常用新特性

目前国内大部分开发人员都是在使用jdk8&#xff0c;甚至是jdk6&#xff0c;但是随着jdk的更新迭代&#xff0c;jdk8我觉得可能就会慢慢的淡出舞台&#xff0c;随着目前主流框架最新版推出明确说明了不再支持jdk8&#xff0c;也促使我不得不抓紧学习了解一波jdk17的新特性&#…...

【分布式微服务云原生】探索负载均衡的艺术:深入理解与实践指南

探索负载均衡的艺术&#xff1a;深入理解与实践指南 摘要&#xff1a; 在本文中&#xff0c;我们将深入探讨负载均衡的概念、重要性以及实现负载均衡的多种算法。通过详细的技术解析、Java代码示例、流程图和对比表格&#xff0c;您将了解如何选择合适的负载均衡策略来优化资源…...

拥抱云原生

专题七&#xff1a;云原生实战72课时 专题简介&#xff1a; 云原生正在改变世界&#xff0c;新一代架构思想ServiceMesh、Serverless改变传统软件架构模式&#xff0c;本专题基于完全云上架构实战&#xff0c;结合微服务架构和云计算平台两者的优势&#xff0c;属于架构师必备…...

关于使用若依并快速构建系统的操作指南

准备阶段--下载源码&#xff08;脚手架&#xff09; 1.1 若依官网地址&#xff1a;https://www.ruoyi.vip/ 1.2 选择“前后端分离版本进行下载”&#xff0c;如下图所示 1.3 跳转gitee后&#xff0c;直接按如下步骤进行下载。 前后端模块分离 解压&#xff0c;并打开到项目…...