rails のActionCableを使ってリアルタイムなアプリを作ろうとした話
railsを使って, DB情報をリアルタイムに画面に表示してくれるアプリを作ろうと思いました
最初はAngler.jsを使おうと思ったり, Ajaxを使おうと思ったりしたけど調べているうちにActionCableなるものを発見しました
ActionCableはWebSocketを簡単に実装できるようにしてくれるものであった. 今回やりたいことに一番近いかなと思い使うことにしました
調べてみるとサンプルが多くあり, 簡単にチャットアプリを作ることができました
実際に入力フォームからDBに格納されて, 表示までされました
ただ今回作りたいもの的にDBが直に更新された時に, ブラウザ側は更新されるのかが気になり, consoleからDBの中身を追加して試してみました
結果, データはブラウザに送られているっぽいけど, 画面をリロードしないと反映されなかった...
いろいろ調べてがんばってみたけど, どうしてもうまいこと対処することができなかった
そこで取った方法が
setInterval("location.reload()",60000);
jsでムリヤリ画面をリロードさせるっていうダサい実装となってしまった(笑)
やりたいことはできたけどWebSocket使ってるのになんだかなぁ~って感じですっきりしない...
もっとスマートなやり方を見つけていきたい...