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上一直是可以正常收发信息的。)不知道为什么,如有指点,十分感谢。

在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12762.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Unity 热更新 之 一篇文章完全入门AssetBundle

本篇知识来源于unity官方手册以及siki学院的相关教程,链接如下,仅作学习分享 AssetBundle(创建打包)入门学习(基于Unity2017) - SiKi学院|SiKi学堂 - unity|u3d|虚幻|ue4/5|java|python|人工智能|视频教程|在线课程 目录 0.热更新是什么 1.AssetBundl…

图片怎么去水印?5个简单好用的图片去水印方法分享!

在日常生活中,图片水印的去除需求时常涌现,无论是出于个人兴趣还是工作需求,掌握去水印技巧能让我们更自由地利用图片资源。今天,我们为您精心挑选并介绍五种实用的图片去水印方法,让您轻松上手,即刻提升图…

半导体测试领域CP和KGD的区别

在半导体测试领域,KGD(Known Good Die)和 CP(Chip Probing 或 Chip Test)是两个重要的概念,它们分别代表了不同阶段的测试和验证过程。下面详细解释这两者的区别: CP(Chip Probing …

人机融合智能中的系统与还原

一、人工智能中的系统与还原 人工智能(AI)作为现代科技的重要组成部分和应用涉及多个学领域,包括计算机科学、学、神经科学等人工智能的研究中系统的概念至关重要。系统不仅仅是简单的组件集合,更多地体现为各个部分之间的相互作用…

这可能是2024年看过最全最详细的Java面试八股文

前言: 本文收集整理了各大厂常见面试题 N 道,你想要的这里都有内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈,希望大家都能找到…

010_SSH_Sqlserver多媒体技术与应用课程网(学习资料+前台考试)_lwplus87

目 录 摘 要... III Abstract V 第1章 概述... 1 1.1 课题背景... 1 1.2 课题意义... 2 1.3开发工具及技术... 2 1.3.1 MyEclipse. 2 1.3.2 Tomcat 2 1.3.3 SqlServer 3 1.3.4 JSP. 3 1.4国内外现状... 4 第2章 可行性分析及总体设计原则... 5 2.1可行性分析…

免费数字孪生平台打造物流数据可视化大屏,助力消费跑出加速度

在当今快速发展的时代,物流行业已成为连接生产与消费的重要桥梁。2024年,中国物流行业再次刷新纪录,8月13日,我国第1000亿件快递已顺利产生,比2023年提前了71天,这一速度令人惊叹。而在这背后,物…

Navict15 过期处理删除注册表

1.winR 注册表输入regedit 2.搜索输入HKEY_CURRENT_USER\Software\PremiumSoft\Navicat 3.输入HKEY_CURRENT_USER\Software\Classes\CLSID,找到只有一个info的,把包含info的这个文件夹删了。

计算机网络:运输层 —— TCP/IP运输层中的两个重要协议

文章目录 TCP 协议工作方式建立连接(三次握手)释放连接(四次挥手) 首部格式 UDP 协议首部格式适用场景 TCP 与 UDP 的对比无连接的UDP和面向连接的TCP对单播、多播和广播的支持情况对应用层报文的处理对数据传输可靠性的支持情况U…

OpenCV4.8 开发实战系列专栏之 13 - 图像翻转(Image Flip)

大家好,欢迎大家学习OpenCV4.8 开发实战专栏,长期更新,不断分享源码。 专栏代码全部基于C 与Python双语演示,专栏答疑群 请联系微信 OpenCVXueTang_Asst 本文关键知识点:图像翻转(Image Flip) 图像翻转的本质像素映…

内网基本概念及知识

参考: 微信公众号:网络安全自修室 1. 内网概述 内网也指局域网(Local Area Network,LAN),即在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理,应用软…

【JAVA】使用IDEA创建maven聚合项目

【JAVA】使用IDEA创建maven聚合项目 1.效果图 2.创建父模块项目 2.1删除父模块下面的src目录以及不需要的maven依赖 3创建子模块项目 3.1右击父模块项目选择Module… 3.2创建子模块 3.3删除子模块下不需要的maven依赖 4.子模块创建完成后引入SpringBoot依赖启动项目

wordpress搭建主题可配置json

网站首页展示 在线访问链接 http://dahua.bloggo.chat/ 配置json文件 我使用的是argon主题,你需要先安装好主题,然后可以导入我的json文件一键配置。 需要json界面配置文件的,可以在评论区回复,看见评论我会私发给你。~

员工利用公司资源做自己生意违法吗?怎么预防?答案揭秘:违法!只需这样做!

各位企业大佬们,你的员工有没有心怀不轨,试图利用职务之便,将公司的资源挪作私用,甚至做起自己的生意呢? 老板:这把心酸泪,我都不想说...... 那么,员工利用公司资源做自己生意是否违…

模型再训练软件环境部署说明

什么时候需要看这个文档? 使用exe在windows预测或者训练paddleClas模型时候,本地环境配置的时候。 主机要求 硬件 系统:windows10以上Nvidia显卡数量:1(仅支持单卡)内存容量:至少32G硬盘容量…

ubuntu系统没有/var/log/messages日志文件解决方法

高版本ubuntu系统默认没有 /var/log/messages,因为在 /etc/rsyslog.d/50-default.conf 文件中,将其注释掉了。如下图 所以需修改该配置文件,将注释放开。 然后重启rsyslog服务即可。 systemctl restart rsyslog.service进入 /var/log/ 目录下…

Activity 通过Bundle与Fragment通信

目录 基础夯实:一、Activity与Fragment的关系二、通信场景三、通信方式1. 通过接口回调2. 通过Bundle3. 其他方式 四、注意事项 效果展示:实现功能:核心代码:MainActivityBlankFragment 基础夯实: Activity与Fragment…

体育活动赛事报名马拉松微信小程序开发

功能描述 体育活动赛事报名马拉松微信小程序,该项目是一个体育活动报名小程序,主要功能有活动报名、扫码签到、签到积分、排行奖励、积分兑换等功能。 用户端🔶登录:◻️1.微信授权登录 ◻️2.手机号码授权 🔶首页&am…

管家婆ERP集成金蝶云星空(管家婆主供应链)

源系统成集云目标系统 金蝶云星空介绍 金蝶云星空是金蝶软件(中国)有限公司研发的新一代战略性企业管理软件,致力于为企业提供端到端的供应链整体解决方案,它可以帮助企业构建敏捷供应链体系,降低供应链成本&a…

信捷 PLC C语言 POU 指示灯交替灭0.5秒亮0.5秒(保持型定时器)

1.在全局变量表中定义2个定时器变量timer_1,timer_2 名称 类型 timer_1 TMR_A_FB False -- False False timer_2 TMR_A_FB False -- False False ot2 BOOL False -- False False ot2表示指示灯 …