socket.io保持404ing?

时间:2012-04-20 08:16:24

标签: node.js socket.io

抱歉这个愚蠢的问题,我确定它是一个noob错误。我正在关注如何使用socket io:http://socket.io/#how-to-use并继续遇到问题;

我有一个节点应用程序(运行版本3.0 alpha的快递)并具有以下内容:

app = express()

io = require('socket.io').listen app

我已经编辑了layout.jade并添加了:

script(src="/socket.io/socket.io.js")

我还运行npm install socket.io并确认它在服务器上启动正常。

如果我浏览到任何页面,控制台会一直显示:

GET http://localhost:3000/socket.io/socket.io.js 404 (Not Found)

其他人遇到过这个问题吗?

2 个答案:

答案 0 :(得分:4)

以下是我刚刚测试过的分步说明

express socket
cd socket
npm install
npm install socket.io

在app.js中添加以下内容

var io = require('socket.io').listen(app);

运行

node app

在控制台中你应该看到

info  - socket.io started

在浏览器中转到

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

你应该看到原始的JavaScript

编辑:

我也遇到了3.0alpha1的问题。看起来像个bug。

这是一个丑陋的工作
var fs = require('fs');
app.get('/socket.io/socket.io.js', function(req, res) {
    fs.readFile('/PROJECT_HOME/node_modules/socket.io/lib/socket.io.js', function(error, content) {
        if (error) {
            res.writeHead(500);
            res.end();
        }
        else {
            res.writeHead(200, { 'Content-Type': 'text/javascript' });
            res.end(content, 'utf-8');
        }
    });
});

答案 1 :(得分:0)

你是否正在从app.js运行layout.jade?

app.get('/',function(req,res){
    res.sendfile('index.html');
});

假设您的模板位于index.html文件中,则需要将其包含在app.js中。