我在HTML页面中嵌入了一个基本的 socket.io 代码。看起来客户端可以毫无问题地连接到服务器,因为服务端脚本会确认它。
但是由于某种原因,浏览器中的console.log
不起作用,也不会记录消息。
这是客户端.html
<script type="text/javascript">
let socket = io.connect('http://localhost:5000');
socket.on('connection', function () {
console.log('Connected to server');
});
</script>
和服务器.js
let io = require('socket.io').listen(process.env.port || 5000);
io.on('connection', function() {
console.log('client connected');
});
但是,当我将console.log
带到socket.on
之外时,控制台.log确实有效:
<script type="text/javascript">
let socket = io.connect('http://localhost:5000');
console.log('Connected to server');
socket.on('connection', function () {
console.log('Connected to server');
});
</script>
我做错了什么或错过了什么?
查看 socket.io 文档,看起来您需要的事件实际上可能是connect
而不是connected
。
控制台日志未触发,因为 socket.io 从未触发称为连接的事件。
尝试:
socket.on('connect', function () {
console.log(`Connected to server`);
});
https://socket.io/docs/client-api/#socket