酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

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

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

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


ActionController::Liveとは?

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

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

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

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

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

ActionController::Liveのサンプル

jiwajiwa-maps-300x256

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

ActionController::Liveの注意事項

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

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

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

(2) IEが使えない

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

まとめ

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

おまけ

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

おすすめの書籍