gpt4 book ai didi

javascript - 使用 socket.io 将数组从服务器发送到客户端

转载 作者:行者123 更新时间:2023-12-02 16:14:01 25 4
gpt4 key购买 nike

我正在开发一个小型聊天应用程序,我希望能够显示已连接用户的列表。为此,在我的服务器端,我有:

var users = {};

io.on('connection', function(socket){
socket.on('newUser', function(pseudo) {
socket.pseudo = pseudo;
users[socket.pseudo] = socket;
io.sockets.emit('newUser', pseudo);
console.log(Object.keys(users));
});

如果我连接 root 用户,控制台会向我发送回 [ 'root' ]。这就是我在客户端的内容:

var pseudo = '#{user.username}';
socket.emit('newUser', pseudo);

socket.on('newUser', function(pseudo) {
$('#messageZone').append('<p><em>' + pseudo + ' just joined the conversation !</em></p>');
});

所以我的问题是,当每个客户端连接并在 div 中显示它时,如何将完整更新的 users 数组发送给每个客户端?

感谢您的帮助!

最佳答案

如果您只想将所有当前连接的用户从服务器发送给所有其他用户,您可以这样做:

io.sockets.emit('allUsers', Object.keys(users));

并且,在客户端将此列表设置为 div:

socket.on('allUsers', function(listOfUsers) {
$('#allUsers').html(listOfUsers.join(", "));
});

这将从users对象中获取键列表,它看起来像是每个用户的pseudo值。该数组将转换为 JSON,发送到每个客户端。然后,每个 socket.io 客户端会将 JSON 解析回数组,您将在客户端上收到一个数组,然后您可以将其放入 HTML 中。

关于javascript - 使用 socket.io 将数组从服务器发送到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29854405/

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