Faye使って見てる話 at MF Geeks Night 2015.04.21

1,211 views

Published on

マネーフォワードの社内勉強会の資料です。

Published in: Internet
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,211
On SlideShare
0
From Embeds
0
Number of Embeds
633
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Faye使って見てる話 at MF Geeks Night 2015.04.21

  1. 1. Mf Geeks Night 2015.04.21
  2. 2. MF Geeks Night is 何
  3. 3. 本日のゲスト紹介
  4. 4. 乾杯
  5. 5. 自己紹介
  6. 6. Koshikawa Naoto • @ppworks
  7. 7. 経歴 • この業界に入った理由は初期衝動の話を参照 • 2003年 大学を卒業して、新卒で大手SIer的な何か へ就職しEcel VBAを用いてキャパシティプランニン グなど運用業務を経験 • 2004年 webエンジニアになる。phpとFLASHでオ ンラインゲームを開発。コアの設計∼実装に携わる。
  8. 8. 経歴 • 2008年 mixiにてperlとFLASHで音楽配信サービスの開発 に従事。 • 2009年 フリーランスとして独立。特化型SNSサイト、商 品カスタマイズECサイトなどの案件に立ち上げから参 加。 • 2011年7月にRuby On Rails 3.0に出会って、そこから rubyistに( ⁰⊖⁰)/ そこでは特化型SNSの立ち上げに参加。
  9. 9. 経歴 • 2012年5月sendagaya.rb立ち上げ • 2013年7月株式会社ジェニュインブルーを設 立。複数のスタートアップ企業のWebサービス 開発に携わる。 • 2014年11月株式会社マネーフォワードに入社。
  10. 10. 最近の活動
  11. 11. やってること • pplogの開発(残念ながらprivate!) • circleaf のリニューアル開発(React.js!?) • 認証周りのRails Engine化 • その他gem(強制リダイレクタ、論理削除)
  12. 12. Repository • https://github.com/ppworks/circleaf • https://github.com/ppworks/nyauth • https://github.com/ppworks/michibiki • https://github.com/ppworks/kamikakushi
  13. 13. gem 'thin' gem 'faye', github: 'faye/faye', branch: 'master' gem 'faye-rails' gem 'faye-redis' Gemfile
  14. 14. config.middleware.delete Rack::Lock opts = { mount: '/faye', engine: {type: Faye::Redis, uri: ENV[‘REDIS_URL']}, timeout: 25 } ! config.middleware.use FayeRails::Middleware, opts do add_extension(Faye::Extension::Authentication.new) map '/posts/' => RealtimePostsController end config/application.rb
  15. 15. app/realtime/ realtime_posts_controller.rb class RealtimePostsController < FayeRails::Controller observe Post, :after_create do |new_post| return if Rails.env.test? RealtimePostsController.publish('/posts', new_post.to_json) end end
  16. 16. class RealtimePostsController < FayeRails::Controller ∼∼ channel '/posts' do monitor :subscribe do puts "Client #{client_id} subscribed to #{channel}." end monitor :unsubscribe do puts "Client #{client_id} unsubscribed from #{channel}." end monitor :publish do puts "Client #{client_id} published #{data.inspect} to #{channel}." end end end
  17. 17. client window.client = new Faye.Client('/faye'); var subscriber = client.subscribe('/posts', function (payload) { // 受け取ったデータをゴニョゴニョする });
  18. 18. • railsに簡単にmountできる • Faye::Redisが便利(裏でpub/sub勝手にしてく れてscalling対応) • herokuで動く(2014.7∼GA) よいところ
  19. 19. DEMO

×