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

news2024/12/25 9:21:49

前言

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.coloradmin.cn/o/2211890.html

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

相关文章

【MySQL】数据库基础指令(一)

前言 个人感觉 MySQL 没有太多的逻辑问题,只有对语句的熟练使用,会对数据进行增删查改操作即可。本章节的内容将会收集一些常用的 MySQL 的指令的使用。 目录 前言 解决MySQL无法输入中文字符的问题 数据库操作 显示当前的数据库 创建数据库 删除数据库 …

大数据存储,搜索智能化的实践分享 | OceanBase 城市交流会精彩回顾

9月21日,“OceanBase 城市交流会”来到了深圳,携手货拉拉大数据技术与产品部,联合举办了“走进货拉拉”的技术交流活动。货拉拉、万家数科、云集、百丽等多家企业的一线技术专家,就大数据存储、AI等热点话题,深入探讨并…

《学习方法报》是什么级别的报纸?

《学习方法报》是什么级别的报纸? 《学习方法报》是省级报纸。 它由山西省教育厅主管,山西教育教辅传媒集团主办。该报创办于 1993 年,国内统一刊号为 CN14-0706/(F)。其作为中国高教学会学习科学研究分会会报,以传递最新教改信…

C# 基于winform 使用NI-VISA USB口远程控制电源 万用表

1.下载完整版本NI-VISA NI-VISA Download - NI *注意支持的操作系统,以便后期编译 安装完成之后,打开NI MAX,插上usb口,打开测试面板进行通信 2.编程示例 见本地文件夹C:\Users\Public\Documents\National Instruments\NI-VIS…

笔记-Python爬虫技术基础及爬取百度新闻

笔记-Python爬虫技术基础及爬取百度新闻 1.1查看网页源代码1.2网页结构初步了解1.3HTML基础知识1.标题<h>标签&#xff1a;2.段落<p>标签&#xff1a;3.链接<a>标签&#xff1a;(定义链接)4.区块&#xff1a;5.类&#xff08;class&#xff09;与 ID 1.4百度…

在深圳宝安石岩路过一座关帝宫

​不管是在我老家还是这几年深漂&#xff0c;关帝爷的庙宇我还真没见过的。今天带娃骑行宝安石岩罗租村逛&#xff0c;居然看到一座古色古香的房子&#xff0c;走进一看原来这是关帝宫啊&#xff01;敬仰之情油然而生。 ​关帝宫和附近的小产权房紧凑在一起&#xff0c;但是现在…

探索人工智能在大规模采用电动汽车的时代将解决电力供需难的问题

1.导言 论文地址&#xff1a;https://arxiv.org/abs/2404.12520 随着电动汽车&#xff08;EV&#xff09;的普及&#xff0c;高峰期的用电需求可能会大幅增加。因此&#xff0c;如何适当控制电动汽车充电并尽量减少高峰期的用电量是一项重要挑战。传统上&#xff0c;基于模型和…

编程练习3 密码输入检测

#include<iostream> #include<vector> #include<string>using namespace std;// 判断字符是否为小写字母 bool isLower(char ch) {return ch > a && ch < z; }// 判断字符是否为大写字母 bool isUpper(char ch) {return ch > A && …

2024.10.8号培训计算机及外部设备装配调试员

1.理论 &#xff08;1&#xff09;电脑的种类&#xff1a;台式机&#xff1a;台式电脑&#xff0c;是一种各功能部件相对独立计算机&#xff0c;又分品牌机和兼容机。 &#xff08;2&#xff09;笔记本电脑&#xff1a;手提电脑或者膝上型电脑&#xff0c;是一种体积小&#…

【C++】内存管理,RALL原则和智能指针

1 C资源管理 C资源管理是确保程序运行效率和稳定性的关键。资源管理涉及变量、参数的存储和生命周期控制&#xff0c;以及动态内存的分配和释放。C通过一套内存管理机制来实现资源的有效分配和管理。 1.1 内存管理 为适用不同场景&#xff0c;C提供了多种内存管理方式&#…

基于Springboot+Vue的校园消费点评系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

大顶堆优化dp,带限制的子序列

前言&#xff1a;看到这个题目的时候我们可以用大顶堆记录前面的最大值&#xff0c;这样我们转移的时候就少了很多繁琐的查询 题目地址 class Solution { public:int constrainedSubsetSum(vector<int>& nums, int k) {int n nums.size();vector<int> ans nu…

论文Idea | 人工智能与建筑的交叉领域探索

在人工智能&#xff08;AI&#xff09;与建筑领域的交叉研究中&#xff0c;学者们探索了如何利用AI技术优化建筑设计、施工、管理以及运营等各个环节。以下是关于这一交叉领域的一些关键内容、研究方向、代表性论文及资源。 1.人工智能在建筑领域的应用概述 人工智能技术的快速…

Dev-Cpp 5.11 安装教程【保姆级】

目录 1. 准备软件安装包 2. 软件安装 3. 软件使用过程中必备的预先设置 写在前面 1. 如果你的电脑是Win 7&#xff0c;建议安装Dev-Cpp 5.11&#xff0c;解决软件和系统的兼容问题。具体安装步骤按照本教程进行即可。 2. 如果你的电脑是Win 10&#xff0c;建议安装Embarca…

QML6 项目生成缓存文件取消办法

有时候我们创建QML项目会在 C:\Users\85720\AppData\Local 文件夹下生成临时缓存文件&#xff0c;不注意的话&#xff0c;文件会越来越多&#xff0c;很烦人。 可以试试通过下面方法取消生成qml缓存文件&#xff0c;配置-》构建和运行 这里选 Use qmlcachegen: 禁用

java web 之过滤器Filter

1、概念 当访问服务器的资源时&#xff0c;Filter过滤器可以将请求拦截下来&#xff0c;完成一些特殊的功能。 通常都是用来拦截request进行处理的&#xff0c;也可以对返回的response进行拦截处理。 一般用于完成通用的操作。如&#xff1a;登录验证、统一编码处理、敏感字…

丰田,也杀入料箱AGV市场

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 在全球仓储自动化领域的竞争日益激烈之际&#xff0c;一场引人注目的合作正在悄然展开。 丰田旗下的物料搬运巨头范德兰德(Vanderlande)…

NSSCTF-WEB-pklovecloud

目录 前言 正文 思路 尝试 结尾 前言 许久未见,甚是想念. 今天来解一道有意思的序列化题 正文 思路 <?php include flag.php; class pkshow {function echo_name(){return "Pk very safe^.^";} }class acp {protected $cinder;public $neutron;public $…

安当数据库透明加密组件:守护您的 ClickHouse 数据安全

数据库简介 ClickHouse 是一款高性能的列式数据库管理系统&#xff0c;专为在线分析处理&#xff08;OLAP&#xff09;设计。它以其卓越的查询性能、强大的 SQL 支持和灵活的可扩展性&#xff0c;在大数据分析领域广受赞誉。无论是实时数据分析、业务智能还是广告技术&#xf…