Node.js:无法使用socket.io与express一起工作,在脚本文件上获取404s

时间:2012-11-15 21:00:30

标签: node.js express socket.io

我正在尝试使用express来提供与socket.io通信的静态页面。问题发生后我一直遇到问题。我做了很多事情,并且用Google搜索了很多次,以至于我无法相信我没有找到我的具体问题的答案。我一直跑到显示服务器的地方,或者向客户展示,而不是与客户沟通的其他地方。或者两者兼而有,但不是快递。当我把express放到混合中时,我开始得到404s并且他们移动我的socket.io客户端脚本并且仍然无法让它工作。这就是我现在所处的位置,尽管这是关于我的第20个配置。

服务器:

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

app.configure(function () {
    app.use(express.static('html'));
});

app.listen(8080);

io.sockets.on('connection', function (socket) {
    console.log('A socket connected!');
}); 

客户端:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:8080');
  socket.send('testing');
</script>

我已经尝试将src更改为/html/socket.io.js(并将所有必需的文件从dist目录复制到/ html),尝试在html目录中创建脚本目录,尝试链接到socket.io的cdn ,我一直得到404s。我知道这是一件愚蠢而简单的事情,我搞砸了,我无法理解我的生活。谢谢!

编辑:我现在要做的就是提供index.html页面,并在看到连接时打印到服务器控制台。

1 个答案:

答案 0 :(得分:8)

请查看here中的示例。我通过将app.listen更改为server.listen来使用快递3。我认为socket.io设置的路由是特定于http服务器的,并且不使用快速路由机制。