SocketStreamのデモを動かそう
西村賢(@knsmr)さんの記事を読んで、面白そう!と思い、早速デモを動かしてみました。
「Rails Hub情報局: Node.jsに強烈に個性的な「SocketStream」が登場!」
デモはgithubのリポジトリから3つほどリンクされています。
とりあえず動かしながら、特徴っぽいところを自分なりに書いてみます。
動かし方については、Mac + Homebrewしか想定していません。というか自分の環境しかわかりません。
あと、Node(Node.js), npm, gitは入っている前提で。
他の環境で動かした方はぜひ教えてください。リンクします。
最初にSocketStream自身をグローバルにインストールしておきましょう。
$ npm install socketstream -g
Coffee-Scriptとか、Socket.ioとかもごっそり入ります。
SocketChat
WebSocketを使ったチャット。app/client/app.coffeeからSS.server.app.sendMessage
のようにクライアントからサーバーのメソッドを直接呼んでいる(ように書ける)ところがポイントかな?
動かし方
まず、Redisをインストールしていない人はインストール。
$ brew install redis
$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/Cellar/redis/2.2.10/io.redis.redis-server.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/io.redis.redis-server.plist
mkdir -p以降は、brew installが終わったときに自動的に案内が出ますので、言われるとおりに従えばOK。
蛇足
バージョンアップのときにも、起動用の.plistをコピーしてlaunchctlやり直す必要がありますが、バージョンアップの時に出る案内を見逃さなければ大丈夫。見逃しても $ brew info redis で再度見られます。
/蛇足
では動かします。
$ git clone https://github.com/addyosmani/socketchat.git
$ cd socketchat
$ npm install
$ mkdir public/assets # directoryが無いよ、って次の手順で言われたので。
$ socketstream s
$ open http://localhost:3000/
はい、終わりです。
ここでherokuにデプロイしようと、小一時間ほど試したのですがちょっとわからなかったのでパス。
具体的には、heroku上で動かすにはprocess.env.PORT
でアプリケーションを動かすPORTを取得するのですが、socketstreamではconfig/app.jsonのような.jsonでその辺の設定をするようで、それを動的に取り出す方法がわかりませんでした。
Dashboard
Widgetを設定し、配置できます。APIからWidgetの中身を操作できるようになっています。
APIから操作し、それがリアルタイムにWidgetに反映されるというのがポイント。(多分)
動かし方
MongoDBをいれていない場合は以下。
$ brew install mongodb
$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/Cellar/mongodb/1.8.2-x86_64/org.mongodb.mongod.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/org.mongodb.mongod.plist
では動かします。
$ git clone https://github.com/paulbjensen/socketstream_dashboard_example
$ cd socketstream_dashboard_example
$ npm install
$ socketesteam s
以上
SocketRacer
レースゲームです。
チャット機能や衝突判定などにのメインロジックにCoffeeScriptを使っているのが売りらしいですが、
すごいんですけれどもsocketstreamならではの売りがちょっとよくわかりませんでした。しっかりソースも追っていません。
見所をどなたか教えてください。
動かし方
$ git clone https://github.com/alz/socketracer.git
$ cd socketracer
$ npm install
$ socketstream s
以上
まとめ
公式のREADMEが充実しているので、ひと通り呼んでサンプル作ってみたいと思います。
対応ブラウザは限定されてしまうかもしれませんが、注目に値するフレームワークではないでしょうか。