Socket.io 未在客户端找到
Socket.io is not found in the client-side
这是我的服务器端:
const path = require('path');
const http = require('http');
const express = require('express');
const socketio = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = socketio(server);
const port = 3000 || process.env.PORT;
app.listen(port, () => {
console.log(`server running on port ${port}`);
});
io.on('connection', socket => {
console.log(socket);
});
这是我的客户端:
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
</script>
</body>
</html>
我重新正确安装了所有模块,但没有帮助。
问题是您要创建两个 Web 服务器,将 socket.io 附加到其中一个,但只启动另一个。
这两行代码都创建了一个新的网络服务器:
const server = http.createServer(app);
app.listen(port, ...);
但是,只有第二个真正开始,而不是您绑定 socket.io 的那个。因此,您绑定 socket.io 的服务器从未启动,因此应该与您的 socket.io 服务器通信的 client-side 内容中的 none 将正常工作。
要修复它,请将您的服务器代码更改为:
const path = require('path');
const express = require('express');
const socketio = require('socket.io');
const app = express();
const port = 3000 || process.env.PORT;
const server = app.listen(port, () => {
console.log(`server running on port ${port}`);
});
const io = socketio(server);
io.on('connection', socket => {
console.log(socket);
});
现在,您将只创建一个 Web 服务器,启动该服务器并将 socket.io 绑定到该服务器。
这是我的服务器端:
const path = require('path');
const http = require('http');
const express = require('express');
const socketio = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = socketio(server);
const port = 3000 || process.env.PORT;
app.listen(port, () => {
console.log(`server running on port ${port}`);
});
io.on('connection', socket => {
console.log(socket);
});
这是我的客户端:
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
</script>
</body>
</html>
我重新正确安装了所有模块,但没有帮助。
问题是您要创建两个 Web 服务器,将 socket.io 附加到其中一个,但只启动另一个。
这两行代码都创建了一个新的网络服务器:
const server = http.createServer(app);
app.listen(port, ...);
但是,只有第二个真正开始,而不是您绑定 socket.io 的那个。因此,您绑定 socket.io 的服务器从未启动,因此应该与您的 socket.io 服务器通信的 client-side 内容中的 none 将正常工作。
要修复它,请将您的服务器代码更改为:
const path = require('path');
const express = require('express');
const socketio = require('socket.io');
const app = express();
const port = 3000 || process.env.PORT;
const server = app.listen(port, () => {
console.log(`server running on port ${port}`);
});
const io = socketio(server);
io.on('connection', socket => {
console.log(socket);
});
现在,您将只创建一个 Web 服务器,启动该服务器并将 socket.io 绑定到该服务器。