CoAP與物聯網系統之返回JSON__JSON

來源:互聯網
上載者:User

在給IoT CoAP添加了JSON支援之後,變得非常有意思,至少我們可以獲得我們想要的結果。在上一篇中我們介紹了一些常用的工具——CoAP 命令列工具集。 CoAP用戶端程式碼範例

開始之前我們需要有一個用戶端代碼,以便我們的服務端可以返回正確的資料並解析

var coap = require('coap');var requestURI = 'coap://localhost/';var url = require('url').parse(requestURI + 'id/1/');console.log("Request URL: " + url.href);var req = coap.request(url);var bl = require('bl');req.setHeader("Accept", "application/json");req.on('response', function(res) {    res.pipe(bl(function(err, data) {        var json = JSON.parse(data);        console.log(json);    }));});req.end();

代碼有點長內容也有點多,但是核心是這句話:

req.setHeader("Accept", "application/json");

這樣的話,我們只需要在我們的服務端一判斷,

if(req.headers['Accept'] == 'application/json') {     //do something };

這樣就可以返回資料了。(轉載保留:CoAP與物聯網系統之返回JSON) CoAP Server端代碼

Server端的代碼比較簡單,判斷一下

if (req.headers['Accept'] == 'application/json') {        parse_url(req.url, function(result){            res.end(result);        });        res.code = '2.05';    }

請求的是否是JSON格式,再返回一個205,也就是Content,只是這時設計是請求一個URL返回對應的資料。如

 coap://localhost/id/1/

這時應該請求的是ID為1的資料,即

[ { id: 1, value: 'is id 1', sensors1: 19, sensors2: 20 }]

而parse_url只是從資料庫從讀取相應的資料。

function parse_url(url ,callback) {    var db = new sqlite3.Database(config["db_name"]);    var result = [];    db.all("SELECT * FROM basic;", function(err, rows) {        callback(JSON.stringify(rows));    })}

並且全部都顯示出來,設計得真是有點不行,不過現在已經差不多了。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.