局域网搭建MQTT服务器(windows和树莓派)

目录

Windows版本:

安装

启动mosquitto服务:

订阅主题:

发布主题:

树莓派:

安装

启动

发布

订阅

Address already in use 排雷

局域网服务器的配置(单IP多IP):

MQTTX无法连接树莓派mosquitto2.0.14版本服务器的问题

自动启动mosquitto


Windows版本:

安装

使用的是mosquitto,下载网址:

Download | Eclipse Mosquitto

无脑安装即可,可参考:

Windows下搭建MQTT服务器_CodingPioneer的博客-CSDN博客_mqtt服务器

但是使用这个方法

mosquitto_passwd.exe -c pwfile.example admin

创建用户不成功,总是提示:

Password:Error:Empty password。

百度了很多次,没有一个相关的博客,无奈,甚是无奈。

翻看一下help手册吧,终于还是找到了解决方案:

mosquitto_passwd -c -b pwfile.example admin 111111

然后打开pwfile.example文件,发现已经替换过去了,Nice!

然后就可以启动服务了,具体可参照上面的博客。

启动mosquitto服务:

在 计算机->管理->服务和应用程序->服务,英文状态下按下m,跳转到M开头的服务,然后选择 mosquitto broker,重启动即可。

订阅主题:

mosquitto_sub -h 127.0.0.1 -p 7788 -u admin -P 111111 -v -t localNet_test

发布主题:

mosquitto_pub -h 127.0.0.1 -p 7788 -u admin -P 111111 -t localNet_test -m "消息测试" 

-m后的是消息内容,可以双引,也可以不引

树莓派:

安装

参考下面的连接,安装是使用的编译源码的方法。

树莓派+Ubuntu 20.04安装Mosquitto MQTT服务_晨之清风的博客-CSDN博客_树莓派mosquitto基本上没什么问题。

启动

启动服务和windows不同,使用命令行进行:

在调试的时候使用下面的命令,-v 查看运行信息:

mosquitto -c /etc/mosquitto/mosquitto.conf -v

实际使用时命令多个 -d 在后台运行:

mosquitto -d -c /etc/mosquitto/mosquitto.conf

发布

mosquitto_pub -h 127.0.0.1 -p 7788 -u admin -P 111111 -t localNet_test  -m "Hello!"

订阅

mosquitto_sub -h 127.0.0.1 -p 7788  -u admin -P 111111 -t localNet_test

Address already in use 排雷

在启动服务的时候出问题,默认的1883端口占用,然后提示错误:

Address already in use

然后使用:

ps -ef | grep mosquitto

找到相关的进程号,然后杀掉:

 sudo kill xxxx

这里注意,不要使用 kill -9 xxxx,不知道为什么使用 kill -9 杀不彻底。然后就正常启动了

我配置在树莓派上的mosquitto的端口号是 7788, 账号密码是admin  111111。

基本上都是启动了相关的服务没有关闭。查看下面的连接。

mosquitto启动时Address already in use 和 一般的 Address already in use_林尧彬的博客-CSDN博客​

局域网服务器的配置(单IP多IP):

在Windows上安装好之后,mosquitto broker服务会开机自动启动,很方便,树莓派上基本都是订阅或者发布,无需启动broker即可直接使用。

服务器配置在局域网中,只需要配置以下几条:

listener 7788    // 监听的端口,此时必须只有一个IP,多个IP的话这样设置是无效的

listener 7788 192.168.18.66         // 当网卡有多个IP时,必须指定其中一个IP,订阅或发布时也必须使用 -h 指定服务器的IP

allow_anonymous false           // 不允许匿名访问,必须使用设置好的用户名和密码

password_file   D:/mosquitto/pwfile.example        //设置好密码文件,也就是之前设置密码的文件 

其他的根据需要自行设定,包括帧长度,默认是无限长;等

MQTTX无法连接树莓派mosquitto2.0.14版本服务器的问题

需要指定服务器

sudo nano /etc/mosquitto/mosquitto.conf

添加socket_domain ipv4 protocol mqtt

然后重启,记得使用mosquitto.conf这个配置重启

自动启动mosquitto

1、修改rc-local.service文件

sudo nano /lib/systemd/system/rc-local.service

2、最后增加这些内容:

[Install]

WantedBy=multi-user.target

Alias=rc-local.service

3、增加以后,打开rc.local

sudo nano /etc/rc.local

4、向其中添加:

#!/bin/sh

mosquitto -d -c /etc/mosquitto/mosquitto.conf

exit 0

5、修改权限

sudo chmod +x /etc/rc.local

6、重启验证

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
树莓派可以使用Mosquitto搭建MQTT服务器。首先,你需要在树莓派上安装一些依赖环境,包括libssl-dev和uuid-dev。你可以使用以下命令来安装这些依赖环境: ``` sudo apt-get install libssl-dev uuid-dev ``` 接下来,你需要下载Mosquitto的源码并进行安装。你可以从Mosquitto的官方网站下载源码包。下载完成后,你可以使用以下命令来解压源码包: ``` tar -zxvf mosquitto-1.6.9.tar.gz ``` 解压完成后,进入解压后的目录,执行以下命令来编译和安装Mosquitto: ``` cd mosquitto-1.6.9 make sudo make install ``` 安装完成后,你可以使用以下命令来启动Mosquitto服务: ``` mosquitto ``` 现在,你的树莓派上已经成功搭建MQTT服务器。你可以使用MQTT的客户端来连接和通信。在MQTT协议中,有三种身份:发布者(Publish)、代理(Broker)(服务器)和订阅者(Subscribe)。发布者和订阅者都是客户端,而代理是服务器。发布者可以同时是订阅者。MQTT传输的消息包括主题(Topic)和负载(payload),主题可以理解为消息的类型,而负载是消息的具体内容。你可以使用MQTT客户端来发布和订阅消息。详情可以参考\[2\]中提供的链接。 #### 引用[.reference_title] - *1* [树莓派-搭建MQTT服务](https://blog.csdn.net/ftswsfb/article/details/118662323)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [在树莓派搭建MQTT服务器](https://blog.csdn.net/qq_43010516/article/details/124651792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值