eclipse mosquitto是一个开放源码(epl/edl许可)消息代理,它实现了mqtt协议版本5.0、3.1.1和3.1。mosquitto是轻量级的,适用于所有设备,从低功率单板计算机到全服务器。mqtt协议提供了使用发布/订阅模型执行消息传递的轻量级方法。这使得它适用于物联网消息传递,如低功耗传感器或手机、嵌入式计算机或微控制器等移动设备。mosquitto项目还提供了一个用于实现mqtt客户机的c库,以及非常流行的mosquitto_pub和mosquitto_sub命令行mqtt客户机。
从这个官方说明中我们基本也就可以了解到mosquitto服务器基本作用。
安装mosquitto服务器
==============
接下来就是关于该服务器的下载和安装过程。
之后在页面中找到windows环境下的exe版本下载,

之后找到我们下载好的文件点击进行安装,然后我们就可以在对应的安装文件夹下看到这样的诸多文件:

关于这几个主要文件的作用介绍如下:
模块 | 功能 |
mosquitto.conf | mosquitto服务器的配置文件 |
mosquitto | 用来开启broker |
mosquitto_passwd | 用来设置用户的账号与密码 |
mosquitto_pub | 用来发布消息 |
mosquitto_sub | 用来订阅消息 |
pwfile.example | 通过mosquitto_passwd来存储用户的账号密码的文件 |
测试mosquitto服务器
==============
在下载安装完成mosquitto服务器之后,当然要对其进行测试,看其是否安装成功,
测试方法为打开cmd命令行,找到我们安装mosquitto服务器的文件路径下,之后输入如下的命令行:
mosquitto -c mosquitto.conf
若没有任何输出,则表示mosquitto服务器启动成功!
效果如下:

消息的订阅&发布
========
在确定我们的mosquitto服务器安装并启动没有问题之后,我们就可以尝试使用该服务器进行mqtt协议中消息的订阅和发布试验了,在mqtt协议中订阅和发布都是在客户端进行的,所以我们这里称为订阅者和发布者,
消息订阅
订阅者订阅的方法为:重新打开cmd命令行,同样找到mosquitto服务器所在的文件夹下,按照如下的命令行格式进行输入:
mosquitto_sub -v -t {topic}
其中的“topic”为消息主题,可以根据实际应用自行命名,在关于mqtt协议概念中有对其相关的介绍,
如下所示:

消息发布
发布者发布消息的方法为:再次打开一个cmd命令行,同样找到mosquitto服务器所在的文件夹下,按照如下的命令行格式进行输入:
mosquitto_pub -t {topic} -m {hello}
其中的“topic”为发布的消息的主题,和上面订阅者订阅的主题是同一个概念,第二个大括号中的内容为将要发布的消息,在这里要注意的是,在使用cmd命令行发布消息时,消息中间不应该有空格,否则会发送失败!
如下所示:

之后如上图所示,我们在订阅者界面就可以接收到相应的主题发送来的消息。
小编13年上海交大毕业,曾经在小公司待过,也去过华为、oppo等大厂,18年进入阿里一直到现在。
深知大多数初中级java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。



由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面v无偿领取!(备注java)

最后
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
- java基础部分

- 算法与编程

- 数据库部分

- 流行的框架与新技术(spring+springcloud+springcloudalibaba)

这份面试文档当然不止这些内容,实际上像jvm、设计模式、zk、mq、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
yymzv-1710761032366)]
这份面试文档当然不止这些内容,实际上像jvm、设计模式、zk、mq、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
发表评论