nemunemu_zzzの日記

備忘録的な何かになればいいな

rails のActionCableを使ってリアルタイムなアプリを作ろうとした話

railsを使って, DB情報をリアルタイムに画面に表示してくれるアプリを作ろうと思いました

最初はAngler.jsを使おうと思ったり, Ajaxを使おうと思ったりしたけど調べているうちにActionCableなるものを発見しました

ActionCableはWebSocketを簡単に実装できるようにしてくれるものであった. 今回やりたいことに一番近いかなと思い使うことにしました

調べてみるとサンプルが多くあり, 簡単にチャットアプリを作ることができました

こことか参考

実際に入力フォームからDBに格納されて, 表示までされました

ただ今回作りたいもの的にDBが直に更新された時に, ブラウザ側は更新されるのかが気になり, consoleからDBの中身を追加して試してみました

結果, データはブラウザに送られているっぽいけど, 画面をリロードしないと反映されなかった...

いろいろ調べてがんばってみたけど, どうしてもうまいこと対処することができなかった

そこで取った方法が


setInterval("location.reload()",60000);

jsでムリヤリ画面をリロードさせるっていうダサい実装となってしまった(笑)

やりたいことはできたけどWebSocket使ってるのになんだかなぁ~って感じですっきりしない...

もっとスマートなやり方を見つけていきたい...