找不到socket.io.js.

时间:2012-04-17 12:15:04

标签: 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

5 个答案:

答案 0 :(得分:95)

请检查您的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);

与connect:https://github.com/senchalabs/connect/issues/500#issuecomment-4620773

相同的问题

答案 1 :(得分:3)

使用Express 3网络框架 :( from socket.io

> Express 3要求您实例化http.Server以将socket.io附加到第一个:

含义 - (1)您必须创建一个服务器实例:

var app = express();
var http = require('http').createServer(app);

(2)将它与socket.io:

结合起来
var io = require('socket.io');
io.listen(http);

而且只有 - (3)让服务器听:

http.listen(8080);

确保您保留此订单!

答案 2 :(得分:1)

安装节点0.8.1后我遇到了同样的问题。 我刚删除了项目文件夹中的node_modules映射并重新安装了express / socket.io。 之后,它再次使用你问题中的代码再次正常工作。

答案 3 :(得分:0)

也许这可以帮到你,在我的Ubuntu 11.10上我没有正确设置NODE_PATH变量, 如果您使用的是linux / mac,请尝试在下面添加.bashrc / .zshrc文件。

export NODE_PATH=/usr/lib/node_modules:$NODE_PATH

答案 4 :(得分:0)

在您的存储库中安装Socket.io:

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

   server.listen(app.get('80')); // not 'app.listen'

之后,配置服务器:

HTML/EJS

在您要归档的<script src="/socket.io/socket.io.js"></script> 或其他内容中,添加:

Console

检查是否适用于strcpy(dummyItem->data, NULL); (Chrome / Mozilla等)。

在我的示例中,我使用Chrome(Ctrl + shift + I):

enter image description here