MQTT 是一個基於發佈/訂閱模式的消息傳輸協議。它具備輕量級、開放、簡單,易於實現,通訊帶寬要求低等特色。這些特色使得它對機器與機器的通訊(M2M)以及物聯網應用(IoT)來講是很好的選擇。它還被應用到手機APP和Web應用中。 瀏覽器
客戶端/服務器模式 vs 發佈/訂閱模式服務器
傳統的網絡通訊模式幾乎都是基於客戶端/服務器模式的:客戶端直接和一個服務端創建鏈接,通訊來獲取數據,數據源和數據目的地雙方直接鏈接。好比在Web應用程序中,瀏覽器直接和Web服務器經過HTTP協議通訊,瀏覽器須要知道服務器的IP和端口號。網絡
需求項目 | 實際使用 | 其它替代品 |
---|---|---|
MQTT服務器軟件 | mosquitto工具 |
/測試 |
公網服務器 | 搬瓦工VPS,Ubuntu系統,帶一個IPv4地址 | 阿里雲,騰訊雲等 |
遠程登陸軟件 | FinalShell | putty等 |
一、安裝 ui
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa #添加源到軟件倉庫 sudo apt-get update #更新軟件倉庫列表 sudo apt-get install mosquitto #安裝mosquitto
二、試運行阿里雲
sudo service mosquitto status #查看運行狀態 sudo service mosquitto start #啓動服務 sudo service mosquitto stop #中止服務
三、添加和修改配置spa
sudo service mosquitto stop #首先中止服務 #用戶的局部配置文件放在: /etc/mosquitto/conf.d/目錄下,而且這個目錄下的全部以.conf後綴的文件都將被mosquitto做爲配置文件,在啓動時加載。 #在/etc/mosquitto/conf.d目錄下,新建myconfig.conf配置文件 #在其中輸入以下內容 #------------------------------------------- # 關閉匿名訪問,客戶端必須使用用戶名 allow_anonymous false #指定 用戶名-密碼 文件 password_file /etc/mosquitto/pwfile.txt #--------------------------------------------
四、建立一個MQTT服務器帳戶命令行
假設用戶名爲:user1 在命令行運行:mosquitto_passwd -c /etc/mosquitto/pwfile.txt user1 回車後連續輸入2次用戶密碼便可
五、從新啓動mosquitto代理
sudo service mosquitto start #啓動服務
在App Store下載MQTTool工具。
訂閱一個消息,主題爲test
發佈主題爲test的消息,點擊發送後,點底部的Subscribe,看是否收到了推送。