在linux上搭建mqtt服务器

本文详细介绍了如何在CentOS 6.7_x86上安装和配置MQTT服务器的过程,包括安装必要的软件包、编译mosquitto源代码、配置及启动服务等步骤。

在linux上搭建mqtt服务器并不难,主要就是用到了mosquitto这款消息代理服务软件

其采用发布/订阅模式传输机制,轻量、简单、开放并易于实现,被广泛应用于物联网之中

我的linux版本为centos6.7_x86

1、安装软件

输入以下指令,挨个安装:

yum install gcc-c++
yum install cmake
yum install openssl-devel
新建个software文件夹,下载mosquitto,下个不高不低的版本,并解压:

mkdir software
cd software
wget http://mosquitto.org/files/source/mosquitto-1.4.10.tar.gz
tar -xzvf mosquitto-1.4.10.tar.gz
但这里还不能编译安装mosquitto

下面的三款扩展性软件,不安装也不影响mosquitto的使用:

安装c-areas(支持异步DNS查找的库):

wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar xvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make
sudo make install
安装lib-uuid(支持为每个连接客户端生成唯一uuid):

yum install libuuid-devel
安装libwebsockets(支持需使用websocket的应用):

wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz
tar zxvf v1.3-chrome37-firefox30.tar.gz
cd libwebsockets-1.3-chrome37-firefox30
mkdir build
cd build
cmake .. -DLIB_SUFFIX=64
make install
上面的有可能没安装成功,尤其是第三个,不过并无大碍,只不过没有相应的功能

我们修改一下mosquitto的配置:

cd mosquitto-1.4.10
vim config.mk
将里面的WITH_SRV:=yes和WITH_UUID:=yes都用#号注释掉
接下来编译安装mosquitto:

make
sudo make install
注意:如果在后续使用过程中找不到libmosquitto.so.1的话,在software下输入以下指令修改一下libmosquitto.so的位置:

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
sudo ldconfig
2、启动测试

创建用户:

sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto
这里要是出现什么存在不存在的问题,一定是你copy错了

程序配置:

mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
启动程序:

mosquitto -c /etc/mosquitto/mosquitto.conf -d
默认端口为1883

最后我们再打开一个服务器窗口,在一个(订阅)窗口输入:

mosquitto_sub -t hello
另一个(发布)窗口输入:
mosquitto_pub -t hello -h localhost -m "hello world!"
程序截图:
这样,我们就成功订阅了主题为hello的消息了

此过程我在树莓派上也搭建过,需自己多添加几个sudo便可以成功操作

如果不行请从make那一步继续无误地操作一遍
 

Linux 系统上搭建 MQTT 服务器,最常用的方式是使用开源的 Mosquitto Broker。以下是详细步骤: --- ### 1. 安装 Mosquitto 以 **Ubuntu/Debian** 系统为例: ```bash # 更新软件包列表 sudo apt update # 安装 Mosquitto Broker 和客户端工具 sudo apt install mosquitto mosquitto-clients ``` 以 **CentOS/RHEL** 系统为例: ```bash # 安装 EPEL 仓库(CentOS) sudo yum install epel-release # 安装 Mosquitto sudo yum install mosquitto mosquitto-clients ``` --- ### 2. 启动并启用 Mosquitto 服务 ```bash # 启动服务 sudo systemctl start mosquitto # 设置开机自启 sudo systemctl enable mosquitto # 查看服务状态 sudo systemctl status mosquitto ``` --- ### 3. 测试本地连接 打开两个终端窗口: - **订阅端**: ```bash mosquitto_sub -h localhost -t "test" ``` - **发布端**: ```bash mosquitto_pub -h localhost -t "test" -m "Hello MQTT" ``` 如果订阅端收到消息,说明服务器运行正常。 --- ### 4. 配置远程访问 编辑 Mosquitto 配置文件(通常为 `/etc/mosquitto/mosquitto.conf`): ```bash sudo nano /etc/mosquitto/mosquitto.conf ``` 添加或修改以下内容: ```conf listener 1883 allow_anonymous true ``` 保存并重启服务: ```bash sudo systemctl restart mosquitto ``` > 注意:开放远程访问时,建议配置防火墙规则允许 1883 端口。 --- ### 5. 使用客户端连接(Python 示例) 安装 Paho-MQTT 客户端库: ```bash pip install paho-mqtt ``` 示例代码: ```python import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print("连接状态:" + str(rc)) client.subscribe("test") def on_message(client, userdata, msg): print(f"收到消息 {msg.topic}: {msg.payload.decode()}") client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect("你的服务器IP", 1883, 60) client.loop_forever() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值