EventMachineとWebSocketでリアルタイムwebアプリを作る
社内のLTで発表する順番が回ってきた。プログラマとして採用されてるんだしここはひとつ技術ネタで…と振り返ってみたら、そういえば技術ネタで発表した経験がほとんどない。ちょっとドキドキしつつネタを仕込んだ。
スライド
リアルタイムweb入門 from Hiromu Shioya
概要
スライドに書いてあることがほぼすべてなのでカンタンに。
「node.jsの衝撃とWebSocketが拓く未来」という記事に影響されて、「リアルタイムWebハッカソン」というイベントが開催された。私は家庭の事情で参加できず、悔しかったので自習してみた、というのがきっかけ。
非同期WebサーバのRubyによる実装(EventMachine / em-websocket)とWebSocketプロトコル(JavaScript / Chrome or Safari)を使って、リアルタイム多人数対戦クイズゲームを作ってみた。
クイズの問題はMashup Award 6のために用意されている「クイズAPI」を使用している。
ソースコードはGithubにて公開している。デモの前に公開しておいたら、@cesareがazabu.gemのためにforkして、機能を追加してくれた(ありがとうございました)。
機能としては貧弱だけれども、実際に動かすとリアルタイム感を味わうことができるので、ぜひ試してみてほしい。
Links
- WebSocketで目指せ“リアルタイムWeb”! – @IT
- リアルタイムWebハッカソン : ATND
- リアルタイムWebハッカソンでハンズオンしてきました – 自分の感受性くらい
- eventmachine @ GitHub
- igrigorik’s em-websocket at master – GitHub
- The WebSocket API
- Mashup Award 6 (#MA6) on CREYLE
- クイズ研 – 10万問からすぐ遊べる、1問からすぐ作れるクイズサイトです!
- Secure source code hosting and collaborative development – GitHub
- kwappa’s quizsocket at master – GitHub
- SAWADA Tadashi (cesare) on Twitter
- Azabu.gem | Google グループ
- cesare’s quizsocket at master – GitHub