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で公開しました。
- ambient-lib (npm)
- ambient-nodejs-lib (Github)