node.js: socket.io vs express.static
Eu tenho o seguinte server.js em execução:
module.exports = server;
var express = require('express');
var fs = require('fs');
var server = express.createServer();
var port = 58000;
server.listen(port);
var io = require('socket.io').listen(server);
server.use(express.static('/', __dirname + '/../public'));
server.use(express.logger());
io.on('connection', function(client){
console.log('new client connected ' + client);
client.on('message', function(){
console.log('client wants something');
});
});
Servidor express.static simples para arquivos em uma subpasta / pública, além de funcionalidade socket.io. Com essa configuração, qualquer solicitação para o arquivo 'socket.io.js' falha, por exemplo,
http://localhost:58000/socket.io/socket.io.js
retorna um erro 404 (arquivo não encontrado). Servidor de arquivos estáticos funciona corretamente. Se eu simplesmente usar o módulo 'http' em vez de 'express' (comentando as linhas express.static e express.logger) o socket.io.js é servido corretamente. Como posso combinar as duas funcionalidades?