연결 한 모든 사용자를 표시하려고합니다. 처음으로 이벤트에 연결된 유일한 사용자가 표시됩니다. 그러나 새로운 닉네임으로 새 페이지 을로드하면 사용자는 첫 번째 페이지에서 업데이트되지 않고 두 번째 페이지는 완벽하게 업데이트됩니다. 하지만 세 번째 페이지를로드하는 경우, 세 번째 페이지는 완전히 으로 업데이트되고 다른 페이지는 업데이트되지 않습니다. 로드 된 마지막 페이지에만 연결된 모든 사용자가 표시됩니다.socket.io를 사용하여 사용자를 업데이트 할 수 없습니다.
서버에
var app = require('express')();
var express = require('express');
var http = require('http').Server(app);
var io = require('socket.io')(http);
var nicks = new Array();
app.use(express.static('./public'));
io.sockets.on('connection', function(socket) {
socket.on('nick', function(data) {
var nick = data.nick;
nicks.push(nick);
socket.emit('users', {
nicks: nicks
});
})
});
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
http.listen(3000, function() {
console.log('listening on *:3000');
});
CLIENT
$(document).ready(function() {
var socket = io();
var nickname;
var nicks = new Array();
nickname = prompt('Write your name:');
$("#button").on("click", function(event) {
var nick = nickname;
socket.emit('nick', {
nick: nick
});
});
socket.on('users', function(data) {
nicks = data.nicks;
for (var i = 0; i < nicks.length; i++) {
$("#users_connected").append('<li>' + nicks[i] + '</li>');
}
});
});
작품!, 난 당신의 대답을 받아, 너무 많은 형제가 당신에게 감사합니다! 나는 당신의 도움을 대단히 감사합니다 :) –