つまづいた石ころ、ぶつかった壁

問題(と解消)の記録

socket.io/socke.io.jsが404を返してどうにも動かない

socket.ioのサンプルを動かしてみたのですが、クライアント側でsocket.io/socke.io.jsのリクエストに404が返されてしまい、
どうにも動きません。

予備知識ゼロでサンプルコピペでやっていたので、何をどうしていいか皆目見当がつかないまま、
とりあえずググって見ると、それらしい回答がありました。

環境

  • node 0.8.4
  • socket.io 0.9.11
  • express 3.0.1

Before

//listenする
http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

//listenしているサーバーに後付け
var io = require('socket.io').listen(app);

io.sockets.on('connection', function(socket) {
  //do something
});

After

//まだlistenしない
var server = http.createServer(app);

var io = require('socket.io').listen(server);
io.sockets.on('connection', function(socket) {
  //do something
});

//socket.ioの準備をしてからlistenする
server.listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

理解が正しいかわかりませんが、
StackOverflowに書かれていることそのままやったら解決しました。