node.js:socket.io vs express.static

У меня запущен следующий server.js:

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');
    });
});

Простой сервер express.static для файлов в подпапке /public, а также функциональность socket.io. При такой настройке любой запрос файла socket.io.js завершается ошибкой, т.е.

http://localhost:58000/socket.io/socket.io.js

возвращает ошибку 404 (файл не найден). Статический файловый сервер работает корректно. Если я просто использую модуль 'http' вместо 'express' (, комментируя строки express.static и express.logger), socket.io.js обслуживается правильно. Как я могу совместить обе функции?

8
задан daaanipm 19 April 2012 в 15:39
поделиться