如何发出使用socket.io在连接的客户端之间更新的数组

编程入门 行业动态 更新时间:2024-10-14 12:20:28

如何发出使用socket.io在连接的客户端之间更新的<a href=https://www.elefans.com/category/jswz/34/1771288.html style=数组"/>

如何发出使用socket.io在连接的客户端之间更新的数组

我正在尝试通过将聊天室的用户名添加到数组中来显示其聊天室中所有已连接客户端的用户名。目前,我的代码只会使用最近加入的用户名来更新用户列表,而不是将用户名添加到数组中,这使我相信数组实际上并没有按照我期望的方式发出?

script.js:

var items = [];
var user = user;
if (!user) {
  user = prompt('Please choose a username:');
  items.push(user);
  socket.emit('theitems', {
      items: items
});
  if (!user) {
    alert('Your name has been set to "Anonymous"');
    user = "Anonymous"
        items.push(user);
  } else {
      alert('Your name has been set to "'+ user +'"');
  } 
}
console.log(items);

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

index.js

server(socket('theitems', ctx => { console.log(ctx.data); ctx.io.emit('theitems', ctx.data); }));

使用服务器作为“主阵列”的更新代码:

index.js(服务器):

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

script.js(客户端):

socket.emit('theitems', {
  user: user
});

socket.on('theitems', function (data) {
      $('.dispUser').html(data);
      console.log(data);
    });
回答如下:

很简单,只需socket.emit('eventName', array);

但是如果您更改数组项,则不会在所有套接字客户端和/或服务器中更改。每次阵列更改时,您都需要发出新的阵列。否则套接字将无法更新其值

更多推荐

如何发出使用socket.io在连接的客户端之间更新的数组

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

发布评论

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

>www.elefans.com

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