gpt4 book ai didi

javascript - 使用 Socket.io 更新所有客户端?

转载 作者:IT老高 更新时间:2023-10-28 21:49:48 26 4
gpt4 key购买 nike

是否可以强制所有客户端使用 socket.io 进行更新?我尝试了以下方法,但是当新客户端连接时,它似乎没有更新其他客户端:

服务器端 JavaScript:

我正在尝试向所有客户端发送一条消息,其中包含当前连接的用户数量,它正确发送了用户数量....但是客户端本身似乎在页面被更新之前不会更新神清气爽。我希望这是实时发生的。

var clients = 0;
io.sockets.on('connection', function (socket) {
++clients;
socket.emit('users_count', clients);
socket.on('disconnect', function () {
--clients;
});
});

客户端 JavaScript:

var socket = io.connect('http://localhost');

socket.on('connect', function(){
socket.on('users_count', function(data){
$('#client_count').text(data);
console.log("Connection");
});
});

最佳答案

它实际上根本没有向其他客户端发送更新,而只是向刚刚连接的客户端发送(这就是你在第一次加载时看到更新的原因)

// socket is the *current* socket of the client that just connected
socket.emit('users_count', clients);

相反,您想发射到所有个套接字

io.sockets.emit('users_count', clients);

或者,您可以使用广播功能,它将消息发送给除了启动它的套接字之外的每个人:

socket.broadcast.emit('users_count', clients);

关于javascript - 使用 Socket.io 更新所有客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7352164/

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