1. 程式人生 > >MQTT學習筆記——MQTT協議體驗 Mosquitto安裝和使用

MQTT學習筆記——MQTT協議體驗 Mosquitto安裝和使用

0 前言    MQTT是IBM開發的一個即時通訊協議。MQTT是面向M2M和物聯網的連線協議,採用輕量級釋出和訂閱訊息傳輸機制。Mosquitto是一款實現了 MQTT v3.1 協議的開源訊息代理軟體,提供輕量級的,支援釋出/訂閱的的訊息推送模式,使裝置對裝置之間的短訊息通訊簡單易用。    若初次接觸MQTT協議,可先理解以下概念:【MQTT協議特點】——相比於RESTful架構的物聯網系統,MQTT協議藉助訊息推送功能,可以更好地實現遠端控制。【MQTT協議角色】——在RESTful架構的物聯網系統,包含兩個角色客戶端和伺服器端,而在MQTT協議中包括釋出者,代理器(伺服器)和訂閱者。【MQTT協議訊息】——MQTT中的訊息可理解為釋出者和訂閱者交換的內容(負載),這些訊息包含具體的內容,可以被訂閱者使用。【MQTT協議主題】——MQTT中的主題可理解為相同型別或相似型別的訊息集合。1 安裝和使用注意點

1.1 安裝
    截止2015年12月,最新版本為mosquitto-1.4.5
# 下載原始碼包
1.2 安裝注意點【1】編譯找不到openssl/ssl.h
    【解決方法】——安裝opensslsudo apt-get install libssl-dev
【2】編譯過程找不到ares.hsudo apt-get install libc-ares-dev【3】編譯過程找不到uuid/uuid.hsudo apt-get install uuid-dev【4】使用過程中找不到libmosquitto.so.1error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
    【解決方法】——修改libmosquitto.so位置
# 建立連結
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1# 更新動態連結庫sudo ldconfig【5】make: g++:命令未找到      【解決方法】    安裝g++編譯器sudo apt-get install g++2 簡單測試    一個完整的MQTT示例包括一個代理器,一個釋出者和一個訂閱者。測試分為以下幾個步驟:【1】啟動服務mosquitto。【2】訂閱者通過mosquitto_sub訂閱指定主題的訊息。【3】釋出者通過mosquitto_pub釋出指定主題的訊息。【4】代理伺服器把該主題的訊息推送到訂閱者。【測試說明】    測試環境:ubuntu 14.04 虛擬機器    在本例中,釋出者、代理和訂閱者均為localhsot,但是在實際的情況下三種並不是同一個裝置,在mosquitto中可通過-h(--host)設定主機名稱(hostname)。為了實現這個簡單的測試案例,需要在linux中開啟三個控制檯,分別代表代理伺服器、釋出者和訂閱者。

圖1 示例2.1 啟動代理服務mosquitto -v    【-v】列印更多的除錯資訊2.2 訂閱主題mosquitto_sub -v -t sensor
    【-t】指定主題,此處為sensor
    【-v】列印更多的除錯資訊2.3 釋出內容mosquitto_pub -t sensor  -m 12
    【-t】指定主題    【-m】指定訊息內容
2.4 執行結果    當釋出者推送訊息之後,訂閱者獲得以下內容
sensor 12    而代理伺服器控制檯中會出現——連線、訊息釋出和心跳等除錯資訊。通過代理伺服器的除錯輸出可以對MQTT協議的相關過程有所瞭解。
圖2 代理伺服器除錯輸出3 總結    通過Mosquitto實現MQTT協議代理器(伺服器),為今後的MQTT協議應用做準備。本文並沒有分析MQTT協議的種種細節,但是希望通過一個簡單的例子把MQTT協議“使用起來”,通過使用過程來理解MQTT協議,在過程中關注細節收集疑問,再閱讀MQTT協議具體內容,這樣學習起來就不至於枯燥乏味(即使MQTT協議只有40多頁,但是初次閱讀我還是沒能理解其內涵,只能怪自己智商太低,學術不精。)

4 參考資料

相關推薦

MQTT學習筆記——MQTT協議體驗 Mosquitto安裝使用

0 前言    MQTT是IBM開發的一個即時通訊協議。MQTT是面向M2M和物聯網的連線協議,採用輕量級釋出和訂閱訊息傳輸機制。Mosquitto是一款實現了 MQTT v3.1 協議的開源訊息代理軟體,提供輕量級的,支援釋出/訂閱的的訊息推送模式,使裝置對裝置之間的短訊息

MQTT協議Mosquitto安裝使用

    Mosquitto是一款實現了 MQTT v3.1 協議的開源訊息代理軟體,提供輕量級的,支援釋出/訂閱的的訊息推送模式,使裝置對裝置之間的短訊息通訊簡單易用。 1.下載解壓、安裝Mosquitto:http://mosquitto.org/files/source

maven學習筆記--window平臺下的安裝一些基本的配置

默認 com onf mage win ips blog 磁盤 png maven官網:http://maven.apache.org/ 系統要求如下: 安裝及配置步驟 (1)下載:到Maven 的官網上去下載windows版本的Maven的安裝包!下載對應的zip 格式

Caffe學習筆記2:Windows下安裝搭建caffe框架

小菜在這裡要感謝實習老師張xx,是他的無私奉獻。他把他之前安裝和搭建caffe框架的過程全部記錄下來了寫成文件了,小菜是按照他caffe學習筆記一步一步安裝的,讓小菜少走了許多彎路,不過小菜在安裝的額

MQTT學習筆記-Mosquitto安裝與啟動

Mosquitto是一個實現了MQTT3.1協議的代理伺服器,由MQTT協議創始人之一的Andy Stanford-Clark開發,它為我們提供了非常棒的輕量級資料交換的解決方案。 在ubuntu下的

學習筆記--MQTT協議接入Onenet伺服器(C#)

一.使用.NET 開源庫我們使用MQTTnet建立我們的MQTT通訊, 版本一直更新請下載最新版二.Fixed header型別名字 值 流向 描述 CONNECT 1 C->S 客戶端請求與服務端建立連線 CONNACK 2 S->C 服務端確

MQTT 學習筆記

內容 -s 應用程序 方式 主題 網絡流 有關 信息 版本 MQTT特點 MQTT協議是為大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議。 1、使用發布/訂閱消息模式,提供一對多的消息發布,解除應用程序耦合 2、對負載內容屏蔽的消息傳輸

MQTT Mosquitto安裝使用

物聯網(Internet of Things,IoT)最近曝光率越來越高。雖然HTTP是網頁的事實標準,不過機器之間(Machine-to-Machine,M2M)的大規模溝通需要不同的模式:之前的請求/回答(Request/Response)模式不再合適,取而代之的是釋出/訂閱(Publish/S

MQTT學習筆記——Yeelink MQTT服務 使用mqtt.jspaho-mqtt

0 前言    2014年8月yeelink推出基於MQTT協議的開關型別裝置控制API,相比於基於HTTP RESTful的輪訓方式,通過訂閱相關主題訊息,可以遠端控制類應用實時性更好。本文使用兩種方式實現開關型別裝置的遠端控制,一種是基於nodeJS的MQTT.js擴充套

python學習筆記----01、Python的安裝

執行命令 adding help 文件的 chm 執行 ons 下載安裝 pri Python安裝 windows 1 2 3 4 5 6 7 1、下載安裝包 https://www.python.org/downloads/ 2、安裝

Java基礎學習筆記二十四 MySQL安裝圖解

password data 默認 count 重新 doc documents tran xp系統 、MYSQL的安裝 1、打開下載的mysql安裝文件mysql-5.5.27-win32.zip,雙擊解壓縮,運行“setup.exe”。

MySQL學習筆記03MySQL集群的安裝部署

key 復雜 手工 file python2.6 nap con 裝包 9.png 1.1.1. 準備安裝包 從MySQL官網下載以下安裝包: mysql-cluster_7.5.7-1ubuntu14.04_amd64.deb-bundle.tar 解壓後得到以下de

Drill 學習筆記之 入門體驗

nbsp 分析 sch logs rri googl base 體驗 數據模型 簡介: Apache Drill是一個低延遲的分布式海量數據(涵蓋結構化、半結構化以及嵌套數據)交互式查詢引擎。分布式、無模式(schema-free) 是Google Dremel的開源實

Mysql DBA 高級運維學習筆記-MySQL5.5編譯方式安裝實戰

ant uname 安裝目錄 當我 b- hole 課程 用戶訪問 tmp 本文為老男孩Mysql DBA 高級運維課程學習筆記的第三節,感謝老男孩老師,我是一個菜鳥如果有寫的不正確的地方請各位大神及時指點。 4.源碼cmake方式編譯安裝MySQL5.5.32 4.1 下

koa學習筆記(一)環境安裝及文件目錄

項目信息 ack 分享圖片 true ref 使用 tps blank hub koa是Nodejs的一個框架。通過koa的學習,我們可以對node快速上手。 1,環境準備 node v7.6+,可以用nvm或者n安裝指定版本的Node mysql 數據庫準備,

學習筆記-centos7.4下yum安裝zabbix3.4

zabbix安裝Zabbix的簡介:zabbix(音同 z?bix)是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。zabbix由2部分構成,zabbix

Chef學習筆記(一)--基礎知識與安裝配置

Chef 概念 安裝 配置 示例 通常Chef由三部分組成:Workstation、Chef Server、Chef Node。 Workstation是進行日常工作的機器,需安裝Chef Development Kit,用來編寫cookbooks,管理Chef Server和Node。

Nodejs學習筆記(五)—Express安裝入門與模版引擎ejs

num routes 項目目錄 其中 bubuko 執行 ctrl+ ica 開發經驗 前言   前面也學習了一些Node.js的基本入門知道,現在開始進入Web開發的部分;   Node.js提供了http模塊,這個模塊中提供了一些底層接口,可以直接使用,但是直接開發網站

Yii2學習筆記1--Yii2的基本介紹Composer安裝

writing req project 學習 png ive iis too 使用   Yii 是一個高性能的,以快速,安全,專業著稱 , 適用於開發 WEB2.0 應用的 PHP 框架 。自帶了豐富的功能 ,包括 MVC,DAO/ActiveRecord,I18N/L10

Docker學習筆記二:Docker的安裝

ros -h bionic docker customer tex 鏈接 space 版本 安裝環境:操作系統:Ubuntu 18.04 LTS,code name:bionic (#lsb_release -a)內核版本:4.15.0-29-generic(#uname