EMQX 是一個開源的 MQTT 通信中間件,支持海量設備的實時數據采集和通信。其中,數據格式通常使用 JSON,以便于統一和簡化數據的傳輸、存儲和解析。
{ "deviceId": "123456789", "timestamp": 1627341845, "temperature": 26.5, "humidity": 67.2, "pressure": 1013.2 }
以上是一個采集了設備編號、時間戳、溫度、濕度和氣壓的 JSON 數據示例。其中,deviceId 是設備的唯一標識符,timestamp 是采集時間的 Unix 時間戳,temperature、humidity 和 pressure 分別是設備采集的溫度、濕度和氣壓。
EMQX 中,我們可以通過以下代碼來發布和訂閱 JSON 格式的數據:
// 發布 JSON 數據 const payload = { deviceId: '123456789', timestamp: new Date().getTime(), temperature: 26.5, humidity: 67.2, pressure: 1013.2 } mqtt.publish('/my-topic', JSON.stringify(payload)) // 訂閱 JSON 數據 mqtt.subscribe('/my-topic') mqtt.on('message', function (topic, message) { const data = JSON.parse(message.toString()) console.log('收到來自 ' + topic + ' 的 JSON 數據:', data) })
以上代碼使用 Node.js 的 MQTT 庫來實現發布和訂閱 JSON 數據。其中,mqtt.publish 方法用于發布 JSON 數據,mqtt.subscribe 方法用于訂閱 JSON 數據。
在訂閱 JSON 數據時,我們需要注意傳輸的字符串需要轉換為 JavaScript 對象,這樣才能準確地解析 JSON 數據。例如,以上代碼中的 message.toString() 就是將傳輸的字符串轉換為 JavaScript 對象,方便進行后續操作。