我們知道MQTT消息服務器有很多,但是最常用的只有兩個: Mosquitto和EMQTT。在性能上來看,EMQTT的併發量最高,但同時CPU使用也佔比很高。Moqtuitto雖然併發量不及EMQTT,但是其發送消息更快,CPU佔用也更少。因此,本文選擇了Moqtuitto作爲MQTT消息服務器。
Mosquitto 安裝
Mosquitto有很多版本,如果想體驗新版本可以上github下載源文件編譯,比較麻煩。我這裏使用Mosquiitto提供的windows版本,雖然版本不是最新的,但是穩定。
1. 下載
從官網下載https://mosquitto.org/download/, 目前最新版本爲
mosquitto-1.6.8-install-windows-x64.exe
2. 安裝
雖然一路“下一步”很爽,爲了默認的路徑“C:\Program Files\mosquitto”包含了空格,所以這裏安裝時在C盤的mosquitto目錄下。
3. 啓動服務
如下圖所示,點擊啓動服務後,mosquitto命令纔可用。
4. 配置用戶名密碼
進入“C:\mosquitto”目錄下,可以查看mosquitto的配置文件及命令
4.1 修改配置
找到mosquitto.conf文件,在任意位置添加如下代碼,重啓服務生效。
# 設置不允許匿名登錄
allow_anonymous false
# 設置賬戶密碼文件位置爲C:\mosquitto\pwfile.example
password_file /mosquitto/pwfile.example
4.2 添加用戶名密碼(命令行)
mosquitto_passwd -c pwfile.example username (使用-c 參數會導致清空密碼文件,重新插入用戶)
mosquitto_passwd pwfile.example username(不使用-c 表示追加用戶,不影響舊用戶)
C:\mosquitto>mosquitto_passwd.exe pwfile.example username
Password:
Reenter password:
4.3 查看用戶名密碼
添加成功後pwfile.example會出現剛剛添加的用戶信息。
5. 測試
5.1 啓動服務
新開一命令行窗口,使用以下命令啓動服務。
C:\mosquitto>mosquitto.exe -c mosquitto.conf
5.2 訂閱消息
新開一命令行窗口,訂閱消息 mosquitto_sub -u cx -P cx -t 'virus /topic' -v, 當執行5.3命令時,該窗口會接收到訂閱消息。
C:\mosquitto>mosquitto_sub -u cx -P cx -t 'virus /topic' -v
'virus/topic' '消滅病毒'
'virus/topic' '消滅病毒'
'virus /topic' '消滅病毒'
5.3 發送消息
新開一命令行窗口,發送消息 mosquitto_pub -u cx -P cx -t 'virus/topic' -m '消滅病毒'
C:\mosquitto>mosquitto_pub -u cx -P cx -t 'virus/topic' -m '消滅病毒'