node.js:socket.io vs express.static

daa*_*ipm 8 javascript node.js express socket.io

我有以下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');
    });
});
Run Code Online (Sandbox Code Playgroud)

用于/ public子文件夹中文件的简单express.static服务器,以及socket.io功能.使用此设置,对'socket.io.js'文件的任何请求都会失败,即

http://localhost:58000/socket.io/socket.io.js
Run Code Online (Sandbox Code Playgroud)

返回404错误(找不到文件).静态文件服务器正常工作.如果我只使用'http'模块而不是'express'(注释掉express.static和express.logger行),则正确提供socket.io.js.我如何结合两种功能?

Tro*_*117 0

确保您拥有最新版本的express.js和socket.io.js。我这边效果很好

express@2.5.8 
socket.io@0.8.5 
node@0.6.5
Run Code Online (Sandbox Code Playgroud)

var io = require('socket.io').listen(server);否则,解决方案可以是在您之后致电server.use