Action Controller::Liveで始めるリアルタイムWeb at Ginza.rb


2013年9月17日に開催されたGinza.rbの『ActionController::Liveで始めるリアルタイムWeb』に参加しました。 Action Controller::Liveの導入部分の説明があったり、Action Controller::Liveのコードをガッツリ1時間以上読んだりしました。

@netwillnetさん達のクールなコードの読解方法も知ることができたので本当に実りの多い勉強会でした!


🍄 Action Controller::Liveとは?

Action Controller::Liveについては、@y_yagiさんがあらかじめ『ActionController::Liveについて、というかServer-Sent Eventsについて』という記事を書いて、とてもわかりやすいのでそちらがオススメです!

僕がメモした要点としては次のとおりです。

* Rails4から追加された、リアルタイムWebのための機能
* サーバー側からデータをpushをするための仕組み
* HTTPのコネクションの中で行うので、サーバ側からクライアント側への一方通信

Web-socketのほうが機能としては上ですがRailsでより気軽に使える点がAction Controller::Liveの魅力のようです。

ちなみにこのAction Controller::Liveでは、Server-Sent Eventsを使っています。このServer-Sent Eventsについては、『Server-Sent Events の利用』がオススメです!

🤔 Action Controller::Liveのサンプル

jiwajiwa-maps-300x256

Internet Explorer以外のモダンブラウザで見る必要がありますが、できそうなことのイメージが付くと思います。

🚜 Action Controller::Liveの注意事項

Action Controller::LiveはRails 4から導入された機能のため、実用的なサービスを構築するためにはいくつかの課題がありそうです。勉強会の中で話しとしてでたのは次の3点です。

(1) railsのアプリケーションサーバの制限

AWebrick, UnicornではServer-Sent Eventsが利用不可。pumaやRainbow!、Thin、Passengerを使う必要があるそうです。

(2) Internet Explorerが使えない

2013/09/17時点ではInternet Explorer最新版ではこの機能が使えません。今後のブラウザの進化に期待です。

🚌 まとめ

Internet Explorerが使えない点を考えると、現時点ではプロジェクトに適用することは困難そうです。ですが今後ブラウザ側が進化したり、Rails側のバージョンアップなどで新しい用途が見えてくると思います! ginza.rb次回が楽しみや〜^^

😎 おまけ

@suginoyさんがTogetterにまとめを作成してくれていたので追加しました!

📚 おすすめの書籍