如何在使用socket.IO?

时间:2018-05-19 21:44:26

标签: javascript node.js socket.io

我在HTML页面中嵌入了一个基本的socket.io代码。看起来客户端可以毫无问题地连接到服务器,因为服务端脚本确认了它。

但由于某些原因,浏览器中的console.log不起作用,也不记录消息。

这是client.html

<script type="text/javascript">
    let socket = io.connect('http://localhost:5000');
    socket.on('connection', function () {
        console.log('Connected to server');
    });
</script>

和server.js

let io = require('socket.io').listen(process.env.port || 5000);

io.on('connection', function() {
    console.log('client connected');

});

但是,当我在console.log之外取socket.on时,console.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>

我做错了什么或我错过了什么?

1 个答案:

答案 0 :(得分:2)

查看socket.io文档,看起来您需要的事件可能实际上是connect而不是connected

你的控制台日志没有被触发,因为socket.io并没有触发一个叫做连接的事件。

尝试:

socket.on('connect', function () {
    console.log(`Connected to server`);
});

https://socket.io/docs/client-api/#socket