2

我正在尝试使用 express 为与 socket.io 通信的 express 提供静态页面。我不断地遇到问题。我做了很多事情,用谷歌搜索了很多次,我不敢相信我还没有找到具体问题的答案。我一直跑到向您展示服务器或向您展示客户端的地方,而不是与它通信的其他地方。或两者兼而有之,但不是快递。当我将 express 加入混合时,我开始得到 404,我移动我的 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,然后我继续获得404。我知道这是我搞砸的愚蠢和简单的事情,我只是无法为我的生活弄明白。谢谢!

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

4

1 回答 1

8

看看这里的例子。我通过更改app.listenserver.listen. 我认为socket.io设置的路由是http服务器特有的,没有使用express路由机制。

于 2012-11-15T21:45:01.517 回答