obnizCloudとの通信はobnizOSが担っておりますが、送信されるデータを選別したり、別のデータにしたり、送信タイミングを変更することができます。
Note: このセクションでは非常に高度かつ低レイヤーな仕組みが掲載されております。
on_upstream()
on_upstream()関数を用意することで、obnizOSがクラウドにデータを送るためのQueueにデータを入れる前に呼び出させることが可能です。
この関数では数値を返すことができ、どういった処理をするかを決めることができます。
| 返り値 | 意味 |
|---|---|
| 0 | 送信せずデータを破棄する |
| 1 | 通常通りQueueに入力し、Queueのタイミングで送信される |
| 2 | 通常通りQueueに入力されるが、Queueを今すぐに送信する。 |
-- func(int), module(int), data(string(uint8 array))
function on_upstream(func, module, data)
if necessary then
return 1;
elseif rightnow then
return 2;
elseif mustDrop then
cloud.upstreamEnqueue(1, 2, str); -- change to differenct command
cloud.upstreamFlush(); -- optional
return 0;
end
end
cloud.upstreamEnqueue(function, module, data);
クラウドに対して送るQueueにデータを挿入します。上記のon_upstream()と組み合わせて利用することで、送ろうとしているデータを取捨選択しながら、別のコマンドに変換したり圧縮することが可能です。
cloud.upstreamEnqueue(1, 2, "my data");
cloud.upstreamFlush()
Queueに挿入されているデータに対して即時送信を指示します
cloud.upstreamFlush()