聶永的博客

          記錄工作/學(xué)習(xí)的點(diǎn)點(diǎn)滴滴。

          MQTT協(xié)議筆記之mqtt.io項(xiàng)目TCP協(xié)議支持

          前言

          MQTT定義了物聯(lián)網(wǎng)傳輸協(xié)議,其標(biāo)準(zhǔn)傾向于原始TCP實(shí)現(xiàn)。構(gòu)建于TCP的上層協(xié)議堆棧,諸如HTTP等,在空間上多了一些處理路徑,稍微耗費(fèi)了CPU和內(nèi)存,雖看似微乎其微,但對很多處理能力不足的嵌入式設(shè)備而言,選擇原始的TCP卻是最好的選擇。

          但單純TCP不是所有物件聯(lián)網(wǎng)的最佳選擇,提供構(gòu)建與TCP基礎(chǔ)之上的傳統(tǒng)的HTTP通信支持,尤其是瀏覽器、性能富裕的桌面涉及領(lǐng)域,還是企業(yè)最 可信賴、最可控的傳輸方式之一。支持多種多樣的連接通道,讓目前所有一切皆可聯(lián)網(wǎng),除了原始TCP Socket,還要支持構(gòu)建于其之上的HTTP、HTML5 Websocket,就很有必要。

          mqtt.io,Pub/Sub中間件,也可以稱之為推送服務(wù)器,涵蓋所有主流桌面系統(tǒng)、瀏覽器平臺,并且傾斜 于移動(dòng)互聯(lián)網(wǎng),以及物聯(lián)網(wǎng)的廣闊適應(yīng)天地。使用一句英文概括可能更為合適:"Make everything connect”,讓所有物件都可連接。其業(yè)務(wù)目標(biāo),可用下圖概括:

          mqtt.io致力于做下一代支持所有主流桌面平臺、所有主流瀏覽器、所有可聯(lián)網(wǎng)物件都可以聯(lián)網(wǎng)的PUB/SUB消息推送系統(tǒng)。

          構(gòu)建此系統(tǒng),在于降低傳統(tǒng)企業(yè)各自分散的推送系統(tǒng),統(tǒng)一運(yùn)營,統(tǒng)一管理,節(jié)省人員、運(yùn)維開支。

          注意事項(xiàng)

          1. mqtt.io是一個(gè)項(xiàng)目名稱,沒有官網(wǎng),http://www.mqtt.io,和這個(gè)項(xiàng)目沒有一毛錢關(guān)系。
          2. 項(xiàng)目地址:https://github.com/yongboy/mqtt.io
          3. 項(xiàng)目名稱啟發(fā)于 http://socket.io http://netty.io 等知名framework。
          4. 目前只實(shí)現(xiàn)QoS 0基本特性,實(shí)現(xiàn)概覽,后期會根據(jù)反饋,做出一些調(diào)整

          依賴

          1. netty 4,目前JAVA IO界明星
          2. mqtt-library 二進(jìn)制和MQTT對象的轉(zhuǎn)換,這種苦活累活都是它來做,真心讓人喜歡。

          數(shù)據(jù)流轉(zhuǎn)

          解碼器

          用于轉(zhuǎn)換二進(jìn)制流到JAVA對象的過程:

          編碼器

          對所有要寫入網(wǎng)卡緩沖區(qū)的JAVA對象轉(zhuǎn)換成二進(jìn)制:

          借助于mqtt-library項(xiàng)目,編解碼不復(fù)雜。

          MQTT的消息處理

          更具體的可以查看項(xiàng)目。

          小結(jié)

          簡單介紹了一個(gè)簡單的不能再簡單的MQTT Server,只具有最基本的QoS 0類型的消息訂閱等。

          后面,對HTML 5 Websocket,會在現(xiàn)有基礎(chǔ)代碼之上,不做多大改動(dòng),增加對MQTT Over WebSocket的支持。

          posted on 2014-05-24 23:03 nieyong 閱讀(9291) 評論(2)  編輯  收藏 所屬分類: MQTT

          評論

          # re: MQTT協(xié)議筆記之mqtt.io項(xiàng)目TCP協(xié)議支持 2014-05-25 08:18 nieyong

          占一個(gè)廣告位~
          北京優(yōu)酷最近在招移動(dòng)服務(wù)器端JAVA攻城師,有需要的同學(xué)(也可以推薦一下),可以發(fā)郵件到 yongboyATgmail.com

          每日接觸海量用戶請求,機(jī)會、舞臺都很不錯(cuò),歡迎各位不妨考慮一下:))  回復(fù)  更多評論   

          # re: MQTT協(xié)議筆記之mqtt.io項(xiàng)目TCP協(xié)議支持 2014-05-26 11:44 手機(jī)賺錢網(wǎng)-手機(jī)賺錢軟件排行,手機(jī)賺錢平臺http://www.9izhuanqian.com

          手機(jī)賺錢網(wǎng)-手機(jī)賺錢軟件排行,手機(jī)賺錢平臺http://www.9izhuanqian.com  回復(fù)  更多評論   

          公告

          所有文章皆為原創(chuàng),若轉(zhuǎn)載請標(biāo)明出處,謝謝~

          新浪微博,歡迎關(guān)注:

          導(dǎo)航

          <2014年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統(tǒng)計(jì)

          常用鏈接

          留言簿(58)

          隨筆分類(130)

          隨筆檔案(151)

          個(gè)人收藏

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 珠海市| 桑植县| 财经| 小金县| 武义县| 唐山市| 荆门市| 吴堡县| 淄博市| 西昌市| 屏东市| 车致| 金湖县| 婺源县| 含山县| 泌阳县| 余姚市| 弋阳县| 涞水县| 澄城县| 谷城县| 临邑县| 常熟市| 通州区| 绵阳市| 沛县| 涪陵区| 山东省| 通渭县| 驻马店市| 邯郸市| 资溪县| 马龙县| 绥中县| 凤庆县| 白沙| 茂名市| 富宁县| 澄城县| 巴楚县| 清河县|