本文的目的是在arm裝置上執行阿里雲提供的sdk,實現mqtt客戶端sub/pub功能,由於實際接入阿里雲平台需要阿里雲賬戶,並且在公網傳輸使用tls不方便抓包分析明文,暫時使用本地mqtt broker的方式,使用抓包工具抓取互動過程學習觀察資料流。
目標執行環境: arm linux
開發環境:ubuntu + 交叉編譯器 2013.05-arm-linux-release/src/gcc-4.7-2013.05
阿里sdk:lora-sdk_v2.2.0.tar.gz(敬請遵守nda)
1、mqtt伺服器的指向:
合理推測10.125.3.189是阿里內部測試用的mqtt broker。
2、設定阿里定義的三元組(pk,dn,ds):gwiotapi.c中,例如
#define product_key "e-meter"
#define device_name "20181212em0"
#define device_id "20181212em0.01"
#define device_secret "seems not used"
自行指定,不能使用"******"
3、修改編譯選項:
makefile 增加 cflags += -don_daily
make.settings:feature_mqtt_direct_notls = y (因為我們沒有部署tls,直接使用mqtt/tcp)
使用arm-201305-gnueabi在根目錄下及lora目錄下make,編譯成mqtt和庫libalilog.so、libgwiotapi.so
執行mqtt,部分輸出如下:
看看客戶端收到的訊息:
演示了mqtt客戶端 sub/pub的過程。
阿里雲定義的三元組,其中的pk和dn用於topic中,ds不使用,推測ds可能在mqtt connect時進行鑑權(可以實際接入阿里雲iot平台進行驗證)。
KVM使用之映象
型別 file vbd vmdk qcow logical volume 映象建立 1.映象建立 qemu img create f qcow2 disk.img 5g 或者dd if dev zero of disk.img bs 1g count 5 我們的環境中使用vbd 2.rawdisk ...
git 使用之路
目錄 1.構建倉庫 2.分支命令 3.拉取和提交 4.檢視命令 5.刪除和恢復 正文 1.構建倉庫,將倉庫推到遠端上 git init git add git commit m 注釋 git remote add origin 遠端倉庫位址 git push u origin master 客戶端首...
NodeJS API使用之流
stream 流 是一種在 node.js 中處理流式資料的抽象介面。基本上所有的流都繼承了event介面。node.js 中有四種基本的流型別 可寫流和可讀流都會在乙個內部的緩衝器中儲存資料。快取的資料量是有限的,會有乙個閥門值。1 可讀流 當呼叫 stream.push chunk 時,資料會被...