株式会社FLECT
小西俊司
 Salesforce HackChallengeに向けてHerokuで
WebSocketアプリを作ったのでその補足説明
◦ http://events.developerforce.com/ja/contests/chall
engejapan2014
 HackChallengeとは無関係なWebSocketアプリとし
てのチャレンジの説明
 http://www.quizar.info/
 リアルタイムクイズアプリ
 出題者の出したクイズを解
答者が手元の端末(スマホ)
で解答し、順位を競うゲーム
 HTML5系の最新技術を使っているので古いブラウザでは
動かない
◦ WebSocket
◦ WebStorage
◦ PushState
◦ CSS3 Animation
など
 普段は互換性を気にしてあまり使えないこれらの技術を
全部ぶちこむことも目的の一つ
 IE(9以前)はともかく、Android標準ブラウザ(4.3以前)が
対象外となるのは残念だが、Android版Chromeもそこ
そこ普及してきているし時間が解決する問題でもあるので
気にしないことにする
 ルーム(テーマを決めたクイズ部屋)の作成
 最大5択のクイズの作成
◦ アンケート的な正解のない問題もアリ
◦ 設定によって参加者からの問題投稿を受け付けることも可能
 イベント(クイズの出題)の開催
 ランキング
◦ イベントごとのランキング
◦ ルームでの複数イベントを通しての通算ランキング
 復習
◦ 勉強会などで使う場合は説明や参考リンクを後から参照可
能
 イベントが開催され
ているルームに入室
 自分でクイズを出し
たい人はルームを作
成
※イベントへの参加は
リモートからも可能で
すが主たる使い方は
実際に皆が同じ空間
に集まって使うことを
想定しています。
 ルーム主催者は適当に何問かクイズを作ります
 Let’s クイズ大会
ランキングを確認したり
過去に参加したイベント
の問題を振り返ったり
できます
 勉強会での利用
◦ 全編をクイズ大会にするのではなく、ところどころ予告してか
ら問題を挟むのが良いと思う
◦ 問題には解説と参考リンクを含められるので、参加者が後か
ら振り返るのに便利
 結婚式の2次会とかホームパーティとか
◦ ランキングが出るのでビンゴの代わりのゲームとして使って
みたり(ただしイケメ。。。以下略)
◦ その場で参加者からの問題投稿も受け付けられるので愉快
なことが起きるかもね(^^;
 WebSocketアプリが実際にどの程度使い物になるかの
実験
 実際に作ってみて思うがWebSocketアプリがどこまで実
用レベルにあるかはまだまだ未知数
◦ LTEなどの通信環境の問題
◦ スリープなどの接続断への対応パターンが確立していない
 実際のところ、これに限らず設計が手探りな部分が多くフレームワーク
の必要性を痛感する
◦ C10K(クライアント1万台)問題
 一応Dynoを増やせば対応できる設計にしているつもりだが、試せてい
ないのでとりあえずイベント参加人数を50人に制限している
など
 これらは時間とともに解決していく問題だとは思うが、その
ためにも何かしらWebSocketアプリが必要
 WebSocketアプリの開発はまだまだ手探りな部分が多く
難しい
 今回題材としてクイズを選択したが、このような「ルームマ
スター VS. 参加者」という構図のアプリの潜在需要はかな
りあると想像する
◦ なにしろ今までそんなアプリはなかったのでほとんどの人は考えた
こともないはず
◦ DreamForce等の千人、万人規模のイベントでこうしたアプリが使
用可能になればそのインパクトは計り知れない
 こうした課題に対して今回作成したアプリの中からフレー
ムワーク化できるところは抜き出して何かしら作りたい
 WebSocket、PushState等のノウハウは近日FLECTの
R&Dブログ(またはスライド)で公開予定

WebSocketでリアルタイムクイズアプリを作ってみた