gpt4 book ai didi

node.js - 无法更新连接用户数(Node.js 和 Socket.io)

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:43 25 4
gpt4 key购买 nike

使用 vanilla node.js 测试 socket.io,我正在制作一个简单的应用程序来显示在线用户数,为简单起见,使用窗口标题。它在服务器的控制台端工作正常,但当我打开新选项卡时,它没有在客户端浏览器上更新。这里有什么问题?代码如下:

var html = `
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on('count updated', (data) => {
//Worked on the current tab, didn't updating on the other tabs
document.title = data + ' User(s) Online';
});
</script>
`;

var count = 0;

var server = require('http').createServer((req, res) => {
res.end(html);
});

var io = require('socket.io')(server).on('connection', (socket) => {

console.log(`${++count} User(s) Online`); //worked fine
socket.emit('count updated', count); //worked once

socket.on('disconnect', () => {
console.log(`${--count} User(s) Online`); //worked fine
socket.emit('count updated', count); //didn't worked
});
});

server.listen(80);

最佳答案

你不能像那样向刚刚断开连接的套接字发出信号。不过,您可以将计数广播给所有已连接用户。为此,请将 socket.emit('count Updated', ..) 的实例替换为:

io.sockets.emit('count updated', count);

或者更简单:

io.emit('count updated', count);

关于node.js - 无法更新连接用户数(Node.js 和 Socket.io),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36390852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com