socket.io のサンプルを heroku で動かしてみる
http://d.hatena.ne.jp/alpha_neet/20120508/1336497694 の続きです。
環境
node | 0.6.12 |
npm | 1.1.4 |
socket.io | 0.9.6 |
nave を使って node をインストール
2012/05/09 の時点で最新の node のバージョンは 0.7.8 ですが、
socket.io 付属のサンプルが 0.7 以上では動かないので、0.6 系をインストールします。
nave install 0.6.13
nave use 0.6.13
curl http://npmjs.org/install.sh | sh
ちなみに nave usemain
socket.io のサンプルを落とす。
cd ~/work(どこでもいい)
npm install socket.io
mv node_modules/socket.io/examples/chat/ .
cd chat
追加ファイル
- .gitignore
node_modules
- Procfile
web: node app.js
変更ファイル
- app.js
@@ -5,7 +5,7 @@ var express = require('express') , stylus = require('stylus') , nib = require('nib') - , sio = require('../../lib/socket.io'); + , sio = require('socket.io'); /** * App. @@ -42,7 +42,8 @@ app.get('/', function (req, res) { * App listen. */ -app.listen(3000, function () { +var port = process.env.PORT || 3000; +app.listen(port, function () { var addr = app.address(); console.log(' app listening on http://' + addr.address + ':' + addr.port); });
- package.json
@@ -1,5 +1,9 @@ { "name": "chat.io" + , "engines": { + "node": "0.6.12" + , "npm": "1.1.4" + } , "description": "example chat application with socket.io" , "version": "0.0.1" , "dependencies": { @@ -7,5 +11,6 @@ , "jade": "0.16.4" , "stylus": "0.19.0" , "nib": "0.2.0" + , "socket.io": "0.9.6" } }
試しにローカルで動かしてみる
npm install
foreman start (or node app.js)
foreman がなければ node app.js で。
http://localhost:5000 か 3000 を開けばチャットが開始されます。
heroku で使える node と npm の version 一覧
http://heroku-buildpack-nodejs.s3.amazonaws.com/manifest.nodejs
http://heroku-buildpack-nodejs.s3.amazonaws.com/manifest.npm
heroku にデプロイしてみる
http://d.hatena.ne.jp/scalar/20120214/1329227856 を参考にしました。
git init
git add .
git commit -m 'first commit'heroku create --stack cedar --buildpack http://github.com/heroku/heroku-buildpack-nodejs.git
git push heroku master
heroku open
上手く動いたら成功。
ローカルに比べて「Connecting to socket.io server」がちと長いかも。
いつまで立っても動かなかったり、エラーが出たら heroku logs を見てみる。