少し前のものですが、Ruby のリアクティブ Web フレームワーク Volt を使って簡単なアプリケーションを作ったので紹介します。
人の名前とかを登録しておいて、その中からランダムにピックアップするくじ引きツールのようなものです。
ソースコードはこちらです。
ほんのちょっとだけ jQuery (opal-jquery) を使ってしまいましたが、ほぼ Volt の機能だけです。単純なモデルしか使っていないので、チュートリアルと同様に、モデル定義はせず、暗黙的にオブジェクトを MongoDB に永続化しています。
Volt は WebSocket を使って、フロントエンドの DOM とバックエンドのモデルをリアルタイムに結びつけています。つまり、たとえば誰かが自分のクライアント上で対象者の登録を行なった場合、他の接続中の人のクライアント上でも即座にその操作が反映されます。試してみたければ、別のブラウザやスマホなど別の端末から同時に接続して操作してみれば、すぐにその結果を見ることができるでしょう。
このリアルタイム性を利用して、例えばカンファレンスなどのくじ引きを行うその場で、対象者に各自それぞれ自分を登録してもらって、実際にくじ引きをするのはスクリーンに写した端末から、とかの利用を想定しています。ただ、現状では誰でもどこからでも操作できてしまうので、実際に使うにはちょっとイマイチですね。