如何将socket.id与数组项关联?

编程入门 行业动态 更新时间:2024-10-19 18:35:55

如何将socket.id与<a href=https://www.elefans.com/category/jswz/34/1771288.html style=数组项关联?"/>

如何将socket.id与数组项关联?

我正在尝试建立一个聊天室,在该聊天室中,“在线用户”部分中显示了已连接用户的名称。

下面的代码会将每个用户的姓名添加到数组中并显示该数组的内容。

但是,如果用户离开,则不会从阵列中删除其用户名。如果弹出数组,则可能无法删除正确的用户名。这使我认为我应该以某种方式将套接字ID与给定的用户名相关联,并创建一个断开事件,该事件从阵列中删除正确的用户名,并显示阵列的更新版本。如何更改此代码以合并此代码?

script.js:

var user = user;
if (!user) {
  user = prompt('Please choose a username:');
  if (!user) {
    alert('Your name has been set to "Anonymous"');
    user = "Anonymous"
        items.push(user);
  } else {
      alert('Your name has been set to "'+ user +'"');
  } 
}

socket.emit('theitems', user);

socket.on('theitems', function (data) {
      $('.dispUser').html(data);
      console.log(data);
    });

server.js:

var newitems = [];
server(socket('theitems', ctx => { newitems.push(ctx.data); console.log(ctx.data); ctx.io.emit('theitems', newitems); }));
回答如下:

我相信在用户连接时,您会使用新用户来更新用户数组,例如:

let users = [];

sockets.on('connection', socket) => {
    // This is the user associated with a new socket connection. 
    // User that you will need to remove when connection is closed.
    const user = { /* create your user */ };
    users.push(user);

    // Then you can subscribe to socket disconnect event
    socket.on('disconnect', () => {
        users = users.filter(u => u !== user); // removing disconnected user

        // And then here you can notify your front-end with an updated users array
    });
});

更多推荐

如何将socket.id与数组项关联?

本文发布于:2024-05-07 08:20:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755362.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   如何将   socket   id

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!