基於MQTT協議進行應用開發
來自:http://www.cnblogs.com/secondtononewe/p/6073089.html
官方協議有句如下的話來形容MQTT的設計思想:
“It is designed for connections with remote locations where a "small code footprint" is required or the network bandwidth is limited.”
MQTT:開源、可靠、輕巧、簡單,MQTT的傳輸格式非常精小,最小的資料包只有2個位元,且無應用訊息頭。 MQTT可以保證訊息的可 靠性,它包括三種不同的服務質量(最多隻傳一次、最少被傳一次、一次且只傳一次),如果客戶端意外掉線,可以使用“遺願”釋出一條訊息,同時支援持久訂 閱。MQTT在物聯網以及移動應用中的優勢有:- 可靠傳輸。MQTT可以保證訊息可靠安全的傳輸,並可以與企業應用簡易整合。
- 訊息推送。支援訊息實時通知、豐富的推送內容、靈活的Pub-Sub以及訊息儲存和過濾。
- 低頻寬、低耗能、低成本。佔用移動應用程式頻寬小,並且頻寬利用率高,耗電量較少。 因此MQTT被廣泛應用於物聯網。
mosquitto_connect_callback_set(mosq, my_connect_callback);
mosquitto_message_callback_set(mosq, my_message_callback);
其中my_connect_callback是mosquitto_loop_forever這個一直存在的迴圈函式在收到伺服器傳遞回來CONNACK資訊(見_mosquitto_handle_connack),則會被觸發,用來呼叫mosquitto_subscribe完成訂閱。
其中my_message_callback則是用於音箱端應用程式的開發,用來接收手機微信端傳遞過來的內容。與手機客戶端定義互動的協議,用於控制音箱的推歌、上下首切換、音源切換、網路模式的切換、音量大小的改變等等。
互動的內容採用json包,因此需要進行json包的解析和封裝。
正確完成音箱端的訂閱,
注意設定好:
cfg.port = 1883;
cfg.topics[cfg.topic_count-1] = strdup(deviceName);
cfg.host = strdup(serverIp); //伺服器地址
這裡初始化了一個屬於音箱端全域性的mosq,可用它關聯pub和sub;(pub和sub共用一個全域性mosq即可,並不需要分別申請一個mosq)
音箱端部分,需要pub訊息給手機微信端。採用mosquitto_pub_start傳送訊息。這個不同於sub是一個一直存在的執行緒,pub屬於一次性,訊息傳遞完畢即結束。
mosquitto_pub_start 中 全域性變數pub_topic ,在mosquitto_sub_start裡面有初始化。
相關推薦
基於MQTT協議進行應用開發
來自:http://www.cnblogs.com/secondtononewe/p/6073089.html 官方協議有句如下的話來形容MQTT的設計思想: “It is designed for connections with remote locations
基於雲資料庫MongoDB版進行應用開發
MongoDB是一個基於分散式檔案儲存的資料庫,在網際網路、物聯網、遊戲、金融等領域被廣泛採用。由C++語言編寫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。MongoDB是當前最流行的Nosql資料庫之一。 MongoDB是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫
電子書 flaskweb開發:基於Python的Web應用開發實戰.pdf
商業 機器 免費 影評 而且 視頻軟件 python程序 規範 初級 作為PythonWeb開發的微框架,Flask獨樹一幟。它不會強迫開發者遵循預置的開發規範,為開發者提供了自由度和創意空間。 《圖靈程序設計叢書·Flask Web開發:基於Python的Web應用開
基於python的web應用開發-添加關註者
templates maps classes else 解決方法 必須 簡化 head html 社交web允許用戶之間相互聯系。 例如: 關註者、好友、聯系人、聯絡人或夥伴。 記錄兩個用戶之間的定向聯系,在數據庫查詢中也要使用這種聯系。 一、論數據庫關系 一對多關系
基於ONVIF協議的攝像頭開發總結
方式 遠程 object amp 利用 構建 bin ide code <什麽是ONVIF協議> 2008年5月,由安訊士(AXIS)聯合博世(BOSCH)及索尼(SONY)公司三方宣布攜手共同成立一個國際開放型網絡視頻產品標準網絡接口開發論壇,取名為O
《Flask Web開發——基於Python的Web應用開發實踐》一字一句上機實踐(下)
屬性 一個用戶 臨時 target 說明 實戰 分享圖片 ace 庫文件 目錄 前言 第8章 用戶認證 第9章 用戶角色 第10章 用戶資料 第11章 博客文章 第12章 關註者 第13章 用戶評論 第14章 應用編程接口 前言
FlaskWeb開發:基於Python的Web應用開發實戰pdf
數據庫查詢 各類 啟動服務 管理 jin 軟件 請求 服務 inter 下載地址:網盤下載 內容簡介 · · · · · ·本書不僅適合初級Web開發人員學習閱讀,更是Python程序員用來學習高級Web開發技術的優秀參考書。? 學習Flask應用的基本結構,編寫示例應
基於Spring Boot構建應用開發規範
SpringBoot 項目規範 1.規範的意義和作用 編碼規範可以最大限度的提高團隊開發的合作效率 編碼規範可以盡可能的減少一個軟件的維護成本 , 並且幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發人員來維護 編碼規範可以改善軟件的可讀性,可以讓開發人員盡快而徹底地理解新的代碼 規範性編碼
《Flask Web開發:基於Python的Web應用開發實戰》pdf 免費下載
需求 png 入行 14. 導入 框架 錯誤 pla 引用 《Flask Web開發:基於Python的Web應用開發實戰》pdf 免費下載鏈接: https://u253469.ctfile.com/fs/253469-292665036 第一部分 Flask
《Flask Web開發:基於Python的Web應用開發實戰》pdf 完整版免費下載
項目 工廠 技術分享 各類 視圖 第2章 靜態文件 閱讀 擁有 《Flask Web開發:基於Python的Web應用開發實戰》.pdf pdf 完整版免費下載: https://u253469.ctfile.com/fs/253469-292665036 更多電子書下
通過集群的方式解決基於MQTT協議的RabbitMQ消息收發
其中 enc msg received 127.0.0.1 結束 技術 tms gpu 在完成了基於AMQP協議的RabbitMQ消息收發後,我們要繼續實現基於MQTT協議的RabbitMQ消息收發。 由於C#的RabbitMQ.Client包中只實現了基於AMQP協議的消
基於Python的Web應用開發實戰——3 模板
要想開發出易於維護的程式,關鍵在於編寫形式簡潔且結構良好的程式碼。 當目前為止,你看到的示例都太簡單,無法說明這一點,但Flask檢視函式的兩個完全獨立的作用卻被融合在了一起,這就產生了一個問題。 檢視函式的作用很明確,即生成請求的響應。 如第2章中的示例,對簡單的請求來所,這就足夠了。
java的江湖——對基於java的web應用開發之整體認識
話說在上個世紀九十年代的中期,Internet開始商業化,他所帶來的便利性使人們趨之若鶩,人們尤其是一些大的企業都想用這個東西給自己的工作、生活以及學習帶來便利,但是這個時候計算機的軟硬體環境差異很大,經常會發現你在A環境中開發的軟體系統並不能在B環境中執行,在這樣的大背景下,java攜
基於MQTT協議的 org.eclipse.paho.client.mqttv3 原始碼學習(二)
一、主要類介紹 二、重點類程式碼分析 對於長連線,一般是直接從訊息的接收和傳送類開始讀,上面知道paho中訊息傳送和接收是在CommsSender和CommsReceiver實現的, 所以直接差看CommsSender程式碼。 [ja
基於MQTT協議的 org.eclipse.paho.client.mqttv3 原始碼學習(一)
一、MQTT協議簡敘 MQTT 有以下特點: 使用釋出/訂閱訊息模式,提供一對多的訊息釋出,解除應用程式耦合 使用TCP/IP提供網路連線 有三種釋出訊息服務質量 “至多一次 Qos level=0”,訊息釋出完全依賴底層 TCP/IP 網路。會發生訊息丟失或重複。這
(Flask Web開發:基於Python的Web應用開發實戰)------學習筆記(第2章)
第2章 程式的基本結構 本章將帶你瞭解 Flask 程式各部分的作用,編寫並執行第一個 Flask Web 程式。 2.1 初始化 所有 Flask 程式都必須建立一個程式例項,程式例項是 Flask 類的物件。 Web 伺服器使用一種名為 Web 伺服器閘
[分享]《Flask Web開發:基於Python的Web應用開發實戰(第2版)》中文PDF+源代碼
全面介紹 flask 技術 ESS nfs 圖片 ges web應用開發 復制粘貼 下載:Flask Web開發第二版《Flask Web開發:基於Python的Web應用開發實戰》第二版中文PDF,324頁,帶目錄和書簽,文字能夠復制粘貼;配套源代碼;經典書籍第二版,講解
《FlaskWeb開發基於Python的Web應用開發實戰第2版》中英PDF+源代碼等4本書學習
開發實戰 leo 能夠 ffffff 第二版 http 資源 web開發 vpd 資源鏈接:https://pan.baidu.com/s/1p7CyLEodCy3e1u93jTVQLg《Flask Web開發 基於Python的Web應用開發實戰第2版》中英PDF+源代碼
Flask Web開發:基於Python的Web應用開發實戰PDF
Flask Web開發:基於Python的Web應用開發實戰PDF 百度網盤 連結:https://pan.baidu.com/s/1_Ax_ubMUOwwfoNPUn2mDeQ 提取碼:s39f 複製這段內容後開啟百度網盤手機App,操作更方便哦 內容簡介 · ·
推薦《FlaskWeb開發:基於Python的Web應用開發實戰》附下載連結
本書不僅適合初級Web開發人員學習閱讀,更是Python程式設計師用來學習高階Web開發技術的優秀參考書。 • 學習Flask應用的基本結構,編寫示例應用; • 使用必備的元件,包括模板、資料庫、Web表單和電子郵件支援; • 使用包和模組構建可伸縮的大型應用; •