以下僅為本地開發環境搭建過程記錄,作業系統為win10。
nodejs環境搭建較為簡單,訪問nodejs官網,根據系統不同選擇不同方式安裝。
nodejs可以使用mosca模組搭建mqtt伺服器。
* http方式
// https證書位置
//通過attachhttpserver(),使得可以從瀏覽器或其他方式以https埠連線mqtt伺服器
;mosca提供authenticate
、autenticatepunlish
和authenticatesubscribe
方法對連線請求進行驗證,均可以被覆蓋。
//連線認證,驗證上傳的使用者名稱和密碼與伺服器儲存的資訊(如資料庫)一致
const user =
;const
authenticate
=(client, username, password, callback)
=>
;//發布校驗,授權可以發布'/users/user/'或者'/public/'下的主題
const
authenticatepublish
=(client, topic, payload, callback)
=>
else
if(t[1]
=='users'
)else
}//訂閱校驗,授權可以訂閱'/users/user/'或者'/public/'下的主題
const
authenticatesubscribe
=(client, topic, callback)
=>
else
if(t[1]
=='users'
)else
}mqttserver.on(
'ready',(
)=>
);
mosca可以監聽的事件參考官方文件。
//部分事件示例如下
mqttserver.on(
'clientconnected'
,(client)
=>);
mqttserver.on(
'subscribed'
,(topic, client)
=>
; mqttserver.
publish
(qtt);}
);mqttserver.on(
'unsubscribed'
,(topic, client)
=>
)mqttserver.on(
'clientdisconnected'
,(client)
=>);
mqttserver.on(
'published'
,(packet, client)
=>
;switch
(topic)
case
'other':}
}
nodejs本地啟動https服務需要金鑰和證書,可以使用openssl對自身簽證。
window平台可以選擇其他開源平台提供的工具,如選擇32位或64位light版(小但能用)。
安裝好之後,可能需要手動配置環境變數,在path
中新增安裝路徑中的bin
目錄,即openssl.exe
所在的目錄)。
以管理員模式啟動cmd,進入想要儲存證書的目錄,輸入如下命令:(參考node.js在本地啟動https服務)。
為伺服器端和客戶端準備公鑰、私鑰
// 生成伺服器端私鑰
openssl genrsa -out server.key 1024
// 生成伺服器端公鑰
openssl rsa -in server.key -pubout -out server.pem
// 生成客戶端私鑰
openssl genrsa -out client.key 1024
// 生成客戶端公鑰
openssl rsa -in client.key -pubout -out client.pem
生成 ca 證書
// 生成 ca 私鑰
openssl genrsa -out ca.key 1024
// x.509 certificate signing request (csr) management.
openssl req -new -key ca.key -out ca.csr
// x.509 certificate data management.
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
第2步中的organization name (eg, company) [internet widgits pty ltd]: 後面生成客戶端和伺服器端證書的時候也需要填寫,不要寫成一樣的生成伺服器端證書和客戶端證書
// 伺服器端需要向 ca 機構申請簽名證書,在申請簽名證書之前依然是建立自己的 csr 檔案
openssl req -new -key server.key -out server.csr
// 向自己的ca機構申請證書,簽名過程需要ca的證書和私鑰參與,最終頒發乙個帶有ca簽名的證書
openssl x509 -req -ca ca.crt -cakey ca.key -cacreateserial -in server.csr -out server.crt
// client 端
openssl req -new -key client.key -out client.csr
// client 端到 ca 簽名
openssl x509 -req -ca ca.crt -cakey ca.key -cacreateserial -in client.csr -out client.crt
完成後,所在資料夾下生成如下檔案:
├── ca.crt
├── ca.csr
├── ca.key
├── ca.srl
├── client.crt
├── client.csr
├── client.key
├── client.pem
├── server.crt
├── server.csr
├── server.key
└── server.pem
再使用nodejs的https
模組啟動https服務即可,配置方法見node.js https.
mqtt.js文件
const mqtt =
require
('../../utils/mqtt.min.js');
const mqttoptions =
;const mqtthost =
'wxs://localhost'
;const mqttclient = mqtt.
connect
(mqtthost, mqttoptions)
;mqttclient.on(
'connect'
,function()
)mqttclient.on(
'message'
,function
(topic, message)
)mqttclient.on(
'reconnect'
,(error)
=>
)mqttclient.on(
'error'
,(error)
=>
)//以下是發布和訂閱的方法,其他方法詳見文件
mqttclient.
publish
(topic, message,
[options]
,[callback]);
mqttclient.
subscribe
(topic/topic array/topic object,
[options]
,[callback]
);
(微信小程式)一 初識微信小程式
需要看的 先是檔案目錄 一 pages 他存放於多個頁面 如 index log頁面。可以把他裡面的每個資料夾看成乙個整體。這個整體存放著 html css 和 資料 1 index資料夾 存放的index頁面的目錄。2 index.js 他可以處理得到 ajax 或自定義定義的資料。把得到的值封裝...
微信小程式
2.單獨設定某一頁面下的頂部欄的背景顏色,在其對應的.json檔案下修改即可 3.this.setdata 注意 onload函式下面執行的是非同步操作,非同步操作裡面this.data.直接賦值,是無效的,必須使用this.setdata this.setdata msg he llo wor l...
微信小程式
你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示 全新的ka...