У меня проблема с клиентом socket.io, потому что я не могу показать список всех пользователей пользователя в моем клиенте. Я просто новый в socket.io, и я знаю, как кодировать на стороне сервера. У меня трудности с программированием на стороне клиента. Все, что я просто хочу сделать, это показать подключенное имя пользователя пользователя в моем client.html <div id="users"></div>
.[Socket.io/Node.js]Retrieving список подключенных пользователей к клиенту
Вот некоторые из моего кода в server.js
var users = [];
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.on('adduser', function (user) {
socket.user = user;
users[user] = user;
console.log(users);
});
socket.on('disconnect', function() {
console.log('User: ' + users[socket.user] + ' has disconnected');
delete users[socket.user];
console.log(users)
});
socket.on('update', function() {
users[user] = user;
console.log('Current users: ', users);
});
});
});
Вот мой простой client.html вставить имя пользователя в массив users[]
<html>
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
var socket = io.connect('http://localhost:8080');
socket.on('connect', function(){
socket.emit('adduser', prompt("What's your name?"));
</script>
<div style="float:left;width:150px;border-right:2px solid black;height:510px;padding:10px;overflow:scroll-y;text-align:center;">
<b>Users</b>
<div id="users"></div>
</div>
</html>
Заранее спасибо , :)
Привет, помните, однако, что на стороне сервера после удаления, если вы пытаетесь получить общее подключенных пользователей по users.length, считают фильтруя массив раньше, так как он даст максимальный индекс + 1, и это может быть или не быть правильным количеством пользователей в этом случае. – vbrmnd
Как мы можем это исправить? Есть ли другой путь? –
Это все еще не обновляет пользователей на клиенте и ничего не показывает. –