как хранить ресурсы сокетов от определенных пользователей с помощью socket.io?

Я создаю скрипт чата, который я тестирую на своей машине с использованием разных браузеров. Я'm tryng для отправки сообщений конкретным пользователям с помощью socket.io, так что вот оно:

client:

socket.on('msgFromServer', function (data) {
     message = data['message'],
     from = data['from'],
     to = data['to'];               

    if($('#chatbox.'+from).dialog("isOpen") === true){
        $('#chatbox.'+from+' #messageOutput textarea.readOnly').text(message);      
    }   
    else if(($('#chatbox.'+from).dialog("isOpen") !== true)){
        createChatbox(from,to,message);
    }
});




server:

var users = {};
io.sockets.on('connection', function (socket) {
    if( ( users.hasOwnProperty(req.session.name) === false))
            users[req.session.name] = socket;

    socket.on('msgToServer', function (data) {
         for (var u in users){
              console.log("%s | %s",u,users[u]);
         }      

     });
}); 

Ну яПоговорим о структуре кода, связанной с сервером. Он отвечает за хранение пользователя насоединение» событие. Проблема начинается, когда я перезагружаю страницу: она сохраняет пользователя из браузера A в объекте users, если я перезагружаюсь и переподключаю, сохраняет его снова, но когда я спрашиваю, каково содержимое объекта users в браузере B ... информация устарел и не показывает тот же результат, как когда я спрашиваю, каково содержимое объекта в броузере A, даже если яя пытаюсь сделать некоторую проверку недействительности для хранения значений, если пользователи пустые -> if ((users.hasOwnProperty (req.session.name) === false)). По сути, мне нужно средство хранения каждого ресурса сокета вконтейнер(на самом деле, неt обязательно должен быть объектом) с идентификатором (req.session.name) и иметь такой контейнер доступным для всех сеансов во всех браузерах, поэтому, когда сервер получает сообщение от браузера A к браузеру B, он может идентифицировать его и выдать ответ браузеру B.

Я получил представление о том, что я хотел отhttps://github.com/generalhenry/specificUser/blob/master/app.js а такжеhttp://chrissilich.com/blog/socket-io-0-7-sending-messages-to-individual-clients/

Если вы внимательно посмотрите на код ... в chrissilich.com, автор заявляет, что нам нужно сохранитьsocket.id» (users [Input.phonenumber] = socket.id), тогда как в состояниях git generalhenry мы должны хранить 'разъем'(users [myName] = socket) ресурс. Последний является правильным, потому что значения socket.id имеют тенденцию быть одинаковыми в обоих браузерах ... и это значение изменяется автоматически, я неНе знаю, почему это так ... Я полагаю, в более ранних версиях узла это работало именно так.

Ответы на вопрос(1)

Ваш ответ на вопрос