数组"/>
如何发出使用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在连接的客户端之间更新的数组
发布评论