色々あって勉強会に出るのも久しぶりな気がします。
だいぶ遅くなりましたが、資料がアップされて下書きしていたのを思い出したので、メモを投下しておきます。
TV視聴参加型システムを支える伸縮可能型Socket.IOクラスタの裏側
資料 → TV視聴参加型システムを支えるSocket.IOクラスタの裏側 // Speaker Deck
- MIESとは
- http://www.bascule-go.com/product/
- ダブルスクリーン視聴によるテレビ番組への参加体験を提供する
- スマートフォンの操作が連動する
- テレビを見ながら、テレビとスマフォが連携する、それがテレビに表示される
- BloodyTube
- テレビの中のゲームに参加出来る
- ポイントは実店舗で利用できる
- これの裏側でMIESが動いている
- リアルタイムメッセージングシステム
- 要件
- リアルタイムに友達の情報を共通したい
- ブロードキャスト配信したい
- 1つの案件ではなく、色々と使えるように汎用性を持たせたい
- クロスブラウザ
- なるべく安く
- スケール、番組は1時間くらいだから、20万ユーザくらいはよろしくね。
- Socket.IO
- マルチトランスポート
- 問題点
- 2回アクセス問題
- スケールアウト、RedisStore
- プロキシで対応する
- 独自ノード管理する これを採用した
- 何が出来るの?
- ユーザ管理
- フレンドグラフ管理
- push
- pull
- パブリックビューイングは、全体を見せて盛り上がってるようにみせる
- 要件
- ソケット接続確立まで
- 一度コンシューマで認証してから、APIサーバに認証しにいく。
- 接続先を返してもらって、そこからソケットサーバを見に行く。
- メッセージ配信
- メッセージ配信
- ノード管理
- サーバTips
- 特定のノードに偏らないように、ノード毎に重み付けを保持する
- Socket.IOのコネクションの数により決定する
- github node-sio ...
- Socket.IOのパラメータ調整
- reconnect_failedのバグがある
- さらなるステップ
- 1台あたりの接続数を上げるための施策
- Cluster化を採用する
- あるいはSocket.IOをやめる
- Sock.js ただし、レイヤーが違うっぽいので、
- Engine.io
- まとめ
- TVとスマフォがリアルタイムに連動するプラットフォーム
- Socket.IOでも十分に大量の接続が捌ける が 工夫は必要
- リアルタイムによる弊害を認識しておく
- アクセスが集中しない工夫
- ソケットが繋がらなかったクライアントも救う手段を用意しておく
Co-Meeting のリアルタイム Web プラクティス
co-meeting | リアルタイムコラボレーションツール
- co-meeting
- チームの全てを共有するリアルタイムコミュニケーションシステム
- CROWY
- co-meeting
- 実装について
- stunnel-haproxy で接続
- Apache Wave
- Google Waveが前身です
- waveプロトコル
- Socket.io-java
- 改修ポイント
- Socket.io-javaは1人コケると全員アウト!
- そこは非同期で吸収して、1個1個送るように修正しました。
- レスポンスが帰ってこないと次が送らない
- 競合の整合性を担保するためのもの
- レスポンスのバージョンをあわせないといけない
- 今は、ポップアップでアラートするにとどまっている
- Socket.io-javaは1人コケると全員アウト!
- インフラとしてのJava
- メモリ管理リツールや、ノウハウが豊富
- Ruby on Rails + Apache Wave
- RailsのPubsub
LT
Node.js + Unity
"Yeomanでtmlib.jsのゲームを量産する"話
第1回 納涼もんご祭り
- http://mongodb.jp/mongo/noryo2013/top*title
- 7/28 東工大蔵前会館 参加費無料
- 隅田川の花火の翌日です。いつきてもいいですよ。
- 懇親会もあります。渋谷のイカセンターでやっています。
- スタッフも募集しています。