找不到socket.io.js.

Dan*_*Lee 43 javascript node.js express socket.io

由于某种原因我的节点服务器无法提供路由/socket.io/socket.io.js,我总是得到404错误.
我尝试编译不同的节点版本(当前是0.6.13,它也在服务器上运行,它实际上工作).
从app.js我得到info: socket.io started并且在尝试调用socket.io.js时没有错误.

我从localhost和端口8000尝试它,我使用快速框架

这是来自app.js的代码:

var express = require('express')
  , app = require('express').createServer()
  , io = require('socket.io').listen(app, { log: true });

app.listen(8000);

app.configure(function() {
    app.use(express.static(__dirname + '/public'));
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

io.sockets.on('connection', function (socket) {
   // all other stuff here
Run Code Online (Sandbox Code Playgroud)

ngu*_*kha 94

请检查您的Express版本.Express最近更新为3.0alpha,API已更改.如果是3.0,您可以将代码更改为以下内容:

var express = require('express')
  , http = require('http');

var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);

...

server.listen(8000);
Run Code Online (Sandbox Code Playgroud)

与connect相同的问题:https://github.com/senchalabs/connect/issues/500#issuecomment-4620773

  • 如果您使用示例代码段,请不要忘记将`app.listen()`更改为`server.listen()`. (15认同)
  • 很棒,就是这样!非常感谢你!:) (2认同)