可能很明显,但我现在在这上面已经3个多小时了,却想不出问题所在。我只想做一个简单的网页,可以和服务器端的代码进行通信。我有所有图书馆的最新版本。
我的服务器端代码是:
//import libaries
global.express = require('express');
global.http = require('http');
global.socketio = require('socket.io');
global.app = express();
global.server = http.createServer(app);
global.io = socketio(server);
//serve files
app.use(express.static('public'));
//start listening
app.listen(80, () => {
console.log('listening...');
});
//socket
io.on('connection', (socket) => {
console.log('a user connected');
});
我的客户端代码如下所示:
<script src="/socket.io/socket.io.js"></script>
<script>
let socket = io();
</script>
<script src="sketch.js"></script>
这应该可以工作,但是每次(在客户端-控制台)我都会收到这个错误:
GET http://localhost/socket.io/socket.io.js net::ERR_ABORTED 404 (Not Found)
我知道像这样的问题很多,但通常都是过时的。
PS:如果我去掉插座部分,表达函数正确。
好的,看起来您正在创建自己的http服务器,然后将socket.io附加到它上。但是你听的不是服务器,而是Express。要么做
server.listen(80, () => {
console.log('listening...');
});
或者只使用Express的服务器
var server = app.listen(80);
var io = require('socket.io').listen(server);
另外,如果您正在构建一个简单的网站,您可能根本不需要socket.io。