我正在尝试使用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页面,并在看到连接时打印到服务器控制台。
答案 0 :(得分:8)
请查看here中的示例。我通过将app.listen
更改为server.listen
来使用快递3。我认为socket.io设置的路由是特定于http服务器的,并且不使用快速路由机制。