阿里mqtt得使用

調(diào)試用的工具下載地址:

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.0.2/

阿里云服務(wù)

??????許多人對云服務(wù)一知半解呐舔,以為知道個ECS/云主機遭铺,就是云服務(wù)的全部了鸣皂。其實瞻坝,云服務(wù)有許多內(nèi)容,消息中間件服務(wù)也是其中一種粹断。

????? 消息隊列在實際應(yīng)用中常用的使用場景符欠。異步處理,應(yīng)用解耦瓶埋,流量削鋒和消息通訊四個場景,具體內(nèi)容園中相關(guān)文章不少希柿,筆者不再此獻丑了呵。

????? 本文主要對阿里云提供的MQTT服務(wù)進行具體實戰(zhàn)配置應(yīng)用進行說明养筒。

MQTT簡介

?MQTT是基于二進制消息的發(fā)布/訂閱編程模式的消息協(xié)議曾撤,最早由IBM提出的,如今已經(jīng)成為OASIS規(guī)范晕粪。由于規(guī)范很簡單挤悉,非常適合需要低功耗和網(wǎng)絡(luò)帶寬有限的IoT場景,比如:

遙感數(shù)據(jù)

汽車

智能家居

智慧城市

醫(yī)療醫(yī)護

?由于物聯(lián)網(wǎng)的環(huán)境是非常特別的巫湘,所以MQTT遵循以下設(shè)計原則:

精簡尖啡,不添加可有可無的功能。

發(fā)布/訂閱(Pub/Sub)模式剩膘,方便消息在傳感器之間傳遞。

允許用戶動態(tài)創(chuàng)建主題盆顾,零運維成本怠褐。

把傳輸量降到最低以提高傳輸效率。

把低帶寬您宪、高延遲奈懒、不穩(wěn)定的網(wǎng)絡(luò)等因素考慮在內(nèi)。

支持連續(xù)的會話控制宪巨。

理解客戶端計算能力可能很低磷杏。

提供服務(wù)質(zhì)量管理。

假設(shè)數(shù)據(jù)不可知捏卓,不強求傳輸數(shù)據(jù)的類型與格式极祸,保持靈活性。

運用MQTT協(xié)議,設(shè)備可以很方便地連接到物聯(lián)網(wǎng)云服務(wù)遥金,管理設(shè)備并處理數(shù)據(jù)浴捆,最后應(yīng)用到各種業(yè)務(wù)場景,如下圖所示:

.登錄阿里云

首先稿械,我們打開阿里云选泻。

https://www.aliyun.com/

右上角,登錄

支持多種方式登錄

可用阿里系旗下的淘寶美莫、支付寶页眯、釘釘?shù)葞ぬ柕卿浂鵁o需注冊呵,真是方便啊

不過當(dāng)中厢呵,還夾了一個微博登錄窝撵,不知是什么個情況,本人不用這個述吸,不管也罷忿族。

選擇淘寶登錄

消息隊列MQ

咦,不是要說MQTT嗎蝌矛?怎么扯到MQ消息隊列了呢道批?這是因為阿里云的MQTT服務(wù)自身沒有持久化功能,需要依托MQ服務(wù)的持久化入撒,所以我們需要先開通MQ服務(wù)隆豹。

登錄阿里云后,找到管理控制臺茅逮,在如下位置璃赡,找到MQ相關(guān)服務(wù)

阿里云中的產(chǎn)品太多,筆者摸索了半天才找到的呵献雅。

開通RocketMQ服務(wù)

選擇消息隊列MQ

單擊消息隊列 RocketMQ進入消息隊列 RocketMQ 的產(chǎn)品主頁碉考。

在消息隊列 RocketMQ 的產(chǎn)品主頁上,單擊立即開通進入消息隊列 RocketMQ 服務(wù)開通頁面挺身,根據(jù)提示完成開通服務(wù)侯谁。

注:開通服務(wù)不收費!U录亍墙贱!

創(chuàng)建資源

資源類型說明

一個新的應(yīng)用接入消息隊列 RocketMQ 需要先創(chuàng)建相關(guān)的消息隊列 RocketMQ 資源,包括:

實例:用于消息隊列 RocketMQ 服務(wù)的虛擬機資源贱傀,會存儲消息主題(Topic)和客戶端 ID(Group ID)信息惨撇。

消息主題(Topic):在消息隊列 RocketMQ 的消息系統(tǒng)中,消息生產(chǎn)者將消息發(fā)送到某個指定的 Topic 府寒,而消息消費者則通過訂閱該指定的 Topic 來獲取和消費消息魁衙。

Group ID用于消息消費者(或生產(chǎn)者)的標識

阿里云 AccessKey:用于收發(fā)消息時進行賬戶鑒權(quán)

MQ服務(wù)管理界面如下

微消息隊列MQTT

在阿里云中报腔,MQTT被稱為微消息隊列,大家入鄉(xiāng)為俗吧纺棺。

點擊 消息隊列 RocketMQ 榄笙,出現(xiàn)下拉列表

哦,原來MQTT服務(wù)你躲在這里暗或颉(產(chǎn)品中直接搜索MQTT是找不到的哦)

各位同學(xué)茅撞,看到的界面可能與我有所不同,可能在看到上述界面之間巨朦,未開通相關(guān)服務(wù)的同學(xué)米丘,可能會看到一個開通相關(guān)服務(wù)的界面,點擊開通就行了呵糊啡。(已開通的話拄查,相關(guān)界面是不會再顯示的呵)

僅開通服務(wù),不創(chuàng)建相關(guān)資源棚蓄,是不會收費的呵堕扶。

創(chuàng)建MQTT實例

創(chuàng)建MQTT實例

彈出購買界面

很多同學(xué)可能看到這里就準備要走人了呵,別急梭依,往下看

我們選擇最右側(cè)的按量付費套餐稍算。

該收費方式按使用收費!R鬯糊探!

除了頂級Topic是按每天每條2元錢收取資源占用費,其余的內(nèi)容河闰,按實際使用量收費科平。

如測試階段,頂級Topic可以使用時創(chuàng)建姜性,用完刪除瞪慧,僅收費使用日的資源占用費。

我們繼續(xù)部念。

購買后弃酌,系統(tǒng)自動生成一個MQTT服務(wù)實例

系統(tǒng)顯示我們已成功創(chuàng)建了一個實例

同時,系統(tǒng)給出了第二步的向?qū)В?/p>

消息存儲配置

阿里云中的MQTT服務(wù)沒有提供存儲功能印机,需要一個MQ服務(wù)來提供支持。

控制臺給出的選項中门驾,Kafka和AMQP目前均不可用

只有RocketMQ可選射赛。

好吧,這也算是選擇的話(我有得選嗎奶是?)

我們選擇新建共享實例楣责,我們以共享單車應(yīng)用為例竣灌,取一個 bike 的實例名

確認,系統(tǒng)生成RocketMQ實例

系統(tǒng)完成MQTT實例的配置秆麸,并給出了公網(wǎng)接入點地址初嘹。

創(chuàng)建Topic

阿里云的MQTT主題訂閱要求必需創(chuàng)建一個頂級的主題資源,這點可能與一些自行搭建的MQTT Broker有所區(qū)別沮趣,筆者分析可能是出于管理的需要屯烦。

?我們創(chuàng)建一個項級Topic

我們選擇普通消息,其他的消息類型房铭,大家可自行查看相應(yīng)的說明驻龟。

創(chuàng)建組ID

組ID也是阿里云MQTT通訊中的一定規(guī)定,ClientID需要使用組ID為前綴缸匪。

RAM資源訪問控制

在服務(wù)創(chuàng)建過程中翁狐,阿里云系統(tǒng)會提示我們需要配置RAM管理

RAM應(yīng)是資源訪問管理的意思,大家可以自行查閱凌蔬。

創(chuàng)建用戶

我們創(chuàng)建一個名為bike的用戶

點擊確定露懒,系統(tǒng)提示需要手機驗證,我們獲取驗證碼后填入并確定(如不需要該用戶具有管理功能砂心,只選擇編程訪問懈词,僅用于程序訪問,可無需短信驗證

系統(tǒng)生成用戶信息计贰,生成了用戶名和密碼

大家切記钦睡,一定要點制復(fù)制,將用戶信息進行妥善保存躁倒,否則荞怒,你會發(fā)現(xiàn),前面一頓操作猛如虎秧秉,沒有AccessKeySecret白瞎杵褐桌。

一旦關(guān)閉此頁面,AccessKeySecret是無法再找回的象迎。

不過荧嵌,系統(tǒng)中雖然不能查看AccessKeySecret,但是還是允許為用戶創(chuàng)建新的AccessKey和AccessKeySecret砾淌,萬一AccessKeySecret丟失啦撮,只有新創(chuàng)建了。

授權(quán)

創(chuàng)建用戶后汪厨,需要對用戶進行授權(quán)

?對用戶添加權(quán)限

?我們授與創(chuàng)建用戶的MQ訪問權(quán)限

#玩轉(zhuǎn)MQTT-阿里云之MQTT使用(下)

摘要

?????? 為使物聯(lián)網(wǎng)項目在正式使用時赃春,能順利切換到具有高并發(fā)高負載能力的服務(wù)平臺,對阿里云提供的MQTT服務(wù)進行使用驗證劫乱。

引言

之前寫“MQTT之阿里云使用-玩轉(zhuǎn)阿里云”這篇文章時织中,由于時間關(guān)系(因水平問題锥涕,本人寫文章通長耗時較長),打算將內(nèi)容拆分為兩部分狭吼,將寫好的一部分先發(fā)了出去层坠,打算稍后再補充后續(xù)完結(jié)內(nèi)容。

?????? 不成想刁笙,文章發(fā)出后破花,居然被管理員從首頁移除,嚴重打擊了本人原本不那么強悍的內(nèi)心采盒,導(dǎo)致一直不太有興趣完成后續(xù)部分旧乞。

??????近來翻看自己的文章,發(fā)表這篇爛尾的文章居然是自己文章中閱讀訪問量最高的一篇磅氨。雖然文章內(nèi)容組織比較凌亂尺栖,表述也不夠好,在這9102年即將過去之際烦租,還是打算來一個續(xù)篇延赌,為自己忙忙碌碌(碌碌無為)的2019做個收尾。

MQTT服務(wù)驗證

?????? 書接上回叉橱,我們說到了阿里云RocketMQ挫以、MQTT服務(wù)的開通(MQTT消息的持久化依托MQ服務(wù))、介紹了MQ窃祝、MQTT實例的創(chuàng)建掐松,頂級Topic資源的創(chuàng)建,GroupID前綴的創(chuàng)建以及RAM帳號資源的創(chuàng)建及帳號授權(quán)粪小。

?????? 一系列準備工作之后大磺,準備開始使用MQTT消息中間件服務(wù)。

訪問鑒權(quán)

?????? 使用微消息隊列 MQTT 的客戶端收發(fā)消息時探膊,服務(wù)端會根據(jù) MQTT 客戶端設(shè)置的 Username 和 Password 參數(shù)來進行鑒權(quán)杠愧。

?????? 阿里云支持兩種鑒權(quán)模式

?????? 簽名驗證:永久授權(quán),適用于客戶端安全受信任的場景

?????? 臨時 Token 權(quán)限驗證:臨時授權(quán)逞壁,適用于客戶端不安全的場景

具體鑒權(quán)認證的相關(guān)資料在這里流济,大家可自行訪問閱讀。https://help.aliyun.com/document_detail/54225.html

簽名校驗

??????簡單介紹一下阿里云MQTT訪問中的簽名鑒權(quán)模式下的訪問要點

??????1腌闯、 MQTT連接參數(shù)中ClientId必須以GroupID為前綴绳瘟,以@@@作為連接符,連接自定義的客戶ID

??????2姿骏、 MQTT連接參數(shù)中Username由鑒權(quán)模式名稱糖声、AccessKey、InstanceId 三部分組成,以 “|” 分隔姨丈。

??????3、 MQTT連接參數(shù)中Password是用AccessKey對應(yīng)的AccessKeySecret對ClientId使用

HMAC-SHA1 方法進行簽名計算得到一個二進制數(shù)組擅腰,再對該二進制數(shù)組做 Base64 編碼得到最終的 Password 簽名字符串蟋恬。

簽名校驗資料網(wǎng)址如下:https://help.aliyun.com/document_detail/48271.html

??????阿里云MQTT服務(wù)管理頁面中,提供了一個在線的JS版本的簽名校驗驗證計算頁面趁冈,用于驗證各位自行實現(xiàn)的校驗算法是否正確歼争。



MQTT連接測試

讓我們調(diào)出Paho神器,來一場說連就連的測試

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.0.2/

https://www.eclipse.org/paho/downloads.php


??????如上圖渗勘,先創(chuàng)建MQTT連接沐绒,填入服務(wù)器地址及端口,填入客戶機標識(ClientId)


??????在MQTT連接選項中旺坠,勾選開啟登錄乔遮,填寫用戶名、密碼


??????點擊連接取刃,正常情況下蹋肮,即可成功連接并登錄到阿里云MQTT服務(wù)器。

??????筆者基于C#,使用開源MQTTnet的Nuget包璧疗,也實現(xiàn)了一個簡單的MQTT客戶端坯辩。我們用這個客戶端進行連接測試,效果如下圖崩侠。

消息消費

??????MQTT是基于二進制消息的發(fā)布/訂閱編程模式的消息協(xié)議漆魔。

??????要使用MQTT進行通訊,就需要有發(fā)布者和消費者却音。發(fā)布者通過發(fā)布主題消息傳遞信息改抡,接收者通過訂閱對應(yīng)的主題接收和消費信息。

訂閱主題

??????MQTT客戶端與MQTT服務(wù)器建立連接之后僧家,我們即可以進行消息訂閱和消息發(fā)布雀摘。

發(fā)布主題

??????我們使用上文中建立的頂級主題創(chuàng)建一個帶有通配符的訂閱主題。

??????注意八拱,MQTT允許使用通配符訂閱主題阵赠,但是并不允許使用通配符廣播。

?????? 我們創(chuàng)建一個頂級主題下帶有城市和發(fā)布者編號的主題肌稻,發(fā)布一條消息清蚀,Payload中攜帶一個json格式的狀態(tài)信息和坐標信息。

?????? 點擊發(fā)布爹谭,可以看到上圖中枷邪,接收框中,成功接收到訂閱主題下的消息诺凡。(操作中發(fā)布了二條消息)东揣。

?????? 使用Paho測試消息發(fā)布/訂閱践惑,效果相同。

?????? 一個發(fā)布者發(fā)布的消息嘶卧,可以被多個訂閱者接收尔觉。

?????? 至此,阿里云MQTT服務(wù)使用介紹完畢芥吟。

使用MQTT.fx客戶端接入阿里云

一侦铜、前期準備。

1.關(guān)于MQTT連接的屬性:https://www.cnblogs.com/mhtc/p/11112153.html

2.關(guān)于阿里云配置工具的使用:https://www.cnblogs.com/mhtc/p/11130809.html

3.關(guān)于阿里云物聯(lián)平臺MQTT服務(wù)的一些屬性钟鸵。

4.MQTT.fx客戶端钉稍,請百度后官網(wǎng)下載。

二棺耍、實際操作汪茧。

1.生成連接參數(shù)舒帮。這里不做介紹肋僧,請參考https://www.cnblogs.com/mhtc/p/11130809.html

2.打開MQTT.fx新建一個客戶端来候。

3.將上次生成的信息做如下拷貝粘貼。

4.設(shè)置一般參數(shù)左敌。

這里都滿足平臺的要求瘾蛋, 沒有做更改。

5.填入用戶名和密碼矫限。

6.如果采用的是TCP直連哺哼,到這里就結(jié)束了。如果采用TLS加密傳輸叼风,需要設(shè)置以下取董。

這個連接沒有采用加密傳輸,沒有設(shè)置這個步驟无宿。

7.保存配置退出客戶端配置界面茵汰。連接服務(wù)器。

綠點表示連接成功孽鸡。

登陸物聯(lián)網(wǎng)管理平臺看一下蹂午。設(shè)備在線。

8. 發(fā)布一條消息彬碱。

這個是官方提供的基礎(chǔ)的主題豆胸, 可自定義主題

客戶端發(fā)布消息

平臺端收到消息。發(fā)布的消息只能選擇QoS0, QoS1, 其他的服務(wù)器不支持.

日志:

消息內(nèi)容:

9.訂閱一個主題巷疼。訂閱主題沒有測試晚胡。留待以后增加。

三、用一個客戶端連接云平臺的意義估盘。

1. 驗證連接參數(shù)的配置是否正確瓷患。

2.快速體驗MQTT連接,不用寫代碼編譯遣妥。

3.可以測試阿里云更深一步的內(nèi)容尉尾,物模型,數(shù)據(jù)的周轉(zhuǎn)傳輸?shù)取?/p>

配置圖片

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末燥透,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辨图,更是在濱河造成了極大的恐慌班套,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件故河,死亡現(xiàn)場離奇詭異吱韭,居然都是意外死亡,警方通過查閱死者的電腦和手機鱼的,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門理盆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凑阶,你說我怎么就攤上這事猿规。” “怎么了宙橱?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵姨俩,是天一觀的道長。 經(jīng)常有香客問我师郑,道長环葵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任宝冕,我火速辦了婚禮张遭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘地梨。我一直安慰自己菊卷,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布宝剖。 她就那樣靜靜地躺著的烁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诈闺。 梳的紋絲不亂的頭發(fā)上渴庆,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼襟雷。 笑死刃滓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的耸弄。 我是一名探鬼主播咧虎,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼计呈!你這毒婦竟也來了砰诵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤捌显,失蹤者是張志新(化名)和其女友劉穎茁彭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扶歪,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡理肺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了善镰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妹萨。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖炫欺,靈堂內(nèi)的尸體忽然破棺而出乎完,到底是詐尸還是另有隱情,我是刑警寧澤品洛,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布囱怕,位于F島的核電站,受9級特大地震影響毫别,放射性物質(zhì)發(fā)生泄漏娃弓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一岛宦、第九天 我趴在偏房一處隱蔽的房頂上張望台丛。 院中可真熱鬧,春花似錦砾肺、人聲如沸挽霉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侠坎。三九已至,卻和暖如春裙盾,著一層夾襖步出監(jiān)牢的瞬間实胸,已是汗流浹背他嫡。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留庐完,地道東北人钢属。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像门躯,于是被迫代替她去往敵國和親淆党。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • # Awesome Python [![Awesome](https://cdn.rawgit.com/sindr...
    emily_007閱讀 2,202評論 0 3
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 2,963評論 1 3
  • 1-------- 走進前端 2-------- jQuery 3-------- CSS 4-------- A...
    依依玖玥閱讀 2,319評論 0 34
  • 傍晚讶凉,晚風(fēng)習(xí)習(xí)染乌,雨后的季夏沒那么悶了,晚上略顯涼懂讯,天氣不是很好荷憋。可是域醇,很難得暑假了,無論是形式還是內(nèi)容上蓉媳,今天我們...
    大白菜小豆腐閱讀 580評論 2 2
  • 最近在滔滔不絕的寫東西譬挚,主要是訓(xùn)練自己的寫作能力和學(xué)習(xí)能力,雖然染香的龍飛鳳舞已經(jīng)寫過三遍了酪呻,但是每一次都有新的收...
    阿璇璇閱讀 414評論 0 0