2

对不起这个愚蠢的问题,我确定这是一个菜鸟错误。我正在关注如何使用套接字 io:http ://socket.io/#how-to-use并一直遇到问题;

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

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)

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

4

2 回答 2

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 的问题。看起来像一个错误。这是一个丑陋的解决方法

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');
        }
    });
});
于 2012-04-20T08:56:50.693 回答
0

你是从 app.js 运行 layout.jade 吗?

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

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

于 2012-04-20T09:06:41.310 回答