Node.jsでAmbientにデーター送信できるといろいろ便利なので、Ambientのnode.jsライブラリーを作りました。

インストール

作ったライブラリーはnpmに登録したので、次のようにライブラリーをインストールできます。

    $ npm install ambient-lib

ライブラリーの読み込みは次のようにおこないます。

    var ambient = require('ambient-lib');

Ambientへの接続とデーター送信

Ambientにデーターを送信するときは、最初にチャネルIdとライトキーを指定してAmbientに接続します。

    ambient.connect(チャネルId, ライトキー);

データーは次のように送ります。dataは次のようなJSON形式で、キーはd1からd8のいずれかを指定します。

    ambient.send(data, callback(err, res, body));

    var data = {d1: 1.1, d2: 2.2};

プログラムは次のようになります。

    ambient.send({d1: 1.1, d2: 2.2}, function(err, res, body) {
    if (err) {
        console.log(err);
    }
        console.log(res.statusCode);
    });

C/C++ライブラリーでは、Ambient::set()でデーターをセットし、Ambient::send()で送信するようにしましたが、node.jsを書く人にとってはJSON形式が自然だと思い、JSON形式のデーターをそのまま渡すようにしました。

データー一括送信

複数件データーの一括送信も出来ます。dataarrayは次のような形式の配列です。createdはデーターの生成時刻で、値は“YYYY-MM-DD HH:mm:ss.sss”という形式か、 数値を渡します。数値を渡した場合は協定世界時(UTC)の1970年1月1日00:00:00からのミリ秒と解釈されます。C/C++版と同様、time: 1を指定すると数値は「秒」と解釈されます。

    ambient.bulk_send(dataarray, callback(err, res, body));

    var dataarray = [
        {created: '2016-07-07 12:00:00', d1: 1.1, d2: 1.01e3},
        {created: '2016-07-07 12:01:00', d1: 1.5, d2: 1.01e3},
        {created: '2016-07-07 12:02:00', d1: 1.0, d2: 1.01e3}
    ];

callback関数のパラメーターはrequestモジュールのcallback関数のパラメーターと同じです。

ライブラリーはnpmに登録しました。ソースコードはGithubで公開しました。