1. 程式人生 > 其它 >[mqtt] 一、mosquitto

[mqtt] 一、mosquitto

技術標籤:mqttlinux物聯網

作者:解琛
時間:2021 年 1 月 25 日

一、mosquitto

1.1 安裝

ubuntu下Mosquitto安裝及配置

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt update
sudo apt install mosquitto -y
sudo
apt install mosquitto-clients -y

1.2 配置

sudo vim /etc/mosquitto/mosquitto.conf

配置檔案的含義如下。

pid_file /var/run/mosquitto.pid

# 訊息持久儲存
persistence true
persistence_location /var/lib/mosquitto/

# 日誌檔案
log_dest file /var/log/mosquitto/mosquitto.log

# 其他配置
include_dir /etc/mosquitto/conf.d

# 禁止匿名訪問
allow_anonymous false
# 認證配置 password_file /etc/mosquitto/pwfile # 許可權配置 acl_file /etc/mosquitto/aclfile

1.3 啟動、重啟、停止伺服器

#-c:指定特定配置檔案啟動
#-d:後臺執行
mosquitto -c /etc/mosquitto/mosquitto.conf -d

如果 mosquitto 預設開啟自動啟動,如果已經在後臺運行了,則使用系統服務管理程式停止、啟動或重啟。

service mossquitto start
service mossquitto stop
service mossquitto restart

1.4 檢視伺服器執行狀態

(base) [email protected]:~$ service mosquitto status
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
   Loaded: loaded (/etc/init.d/mosquitto; generated)
   Active: active (running) since Mon 2021-01-25 10:32:37 CST; 9min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 21351 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
  Process: 21637 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/mosquitto.service
           └─21643 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

1月 25 10:32:37 xiechen-Ubuntu systemd[1]: Starting LSB: mosquitto MQTT v3.1 message broker...
1月 25 10:32:37 xiechen-Ubuntu mosquitto[21637]:  * Starting network daemon: mosquitto
1月 25 10:32:37 xiechen-Ubuntu mosquitto[21637]:    ...done.
1月 25 10:32:37 xiechen-Ubuntu systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.

1.5 檢視伺服器日誌

(base) [email protected]:~$ sudo tail /var/log/mosquitto/mosquitto.log
1611540764: Client rtu4001 has exceeded timeout, disconnecting.
1611540764: Socket error on client rtu4001, disconnecting.
1611540815: New connection from 172.20.1.107 on port 1883.
1611540815: New client connected from 172.20.1.107 as rtu4001 (c1, k60, u'ims-om').
1611541929: mosquitto version 1.4.15 terminating
1611541957: mosquitto version 1.4.15 (build date Tue, 18 Jun 2019 11:42:22 -0300) starting
1611541957: Config loaded from /etc/mosquitto/mosquitto.conf.
1611541957: Opening ipv4 listen socket on port 1883.
1611541957: Opening ipv6 listen socket on port 1883.
1611541961: New connection from 172.20.1.107 on port 1883.

1.5 sub 訂閱主題

引數描述
-h伺服器主機,預設localhost;
-t指定主題;
-u使用者名稱;
-P密碼;
-i客戶端id,唯一;
-m釋出的訊息內容;
mosquitto_sub -h localhost -u user1 -P 123456 -i "client2" -t '$SYS/broker/clients/active'

1.6 pub 釋出資訊

引數描述
-h伺服器主機,預設localhost;
-t指定主題;
-u使用者名稱;
-P密碼;
-i客戶端id,唯一;
-m釋出的訊息內容;

引數含義和 sub 一樣。

mosquitto_pub -h localhost -t "test/abc" -u user1 -P 123456 -i "client3" -m "How are you?"