一つ前の記事で書いたRocketIOのJSライブラリを内蔵した。
JSとHTMLだけでRubyのLindaに参加できるようになった。
shokai/sinatra-rocketio-linda · GitHub
ダウンロード
linda.js
linda.min.js
使い方
内部でRocketIOを使っているので、ioインスタンスをLindaのコンストラクタに渡せばwebsocket/cometの適当な方で接続してくれる。
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="/linda.min.js"></script>
var io = new RocketIO().connect("http://example.com");
var linda = new Linda(io);
var ts = new linda.TupleSpace("calc");
io.on("connect", function(){
alert(io.type + " connect!! " + io.session);
ts.write([1, 2, 3]);
});
試しに、研究室の明るさセンサが出しているタプルを読んでWebページの背景色として表示してみた。
部屋が明るいとページも明るくなる。
JSちょっと書くだけでサーバーから毎秒センサー値が送られてきて楽しい。
http://sho.masuilab.org/light/
ソースコード
https://github.com/shokai/linda-light-sensor-webpage