upstream

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()