как удалить старые значения из сокета? - PullRequest
0 голосов
/ 24 мая 2019

Я использую C9 и реализую функцию сообщений. Пользователь_1 вошел в систему, заходит в свой почтовый ящик, выбирает одно имя контакта, появляются все сообщения об этом имени контакта. Теперь, пользователь user_2 вошел в систему, зашел в свой почтовый ящик, увидел имена своих контактов, НО, со своей консоли, если он вводит какое-либо имя контакта user_1, появляются сообщения !!!!!!! похоже, старые значения хранятся в сокете.

в файле ejs на стороне клиента: я получил выбранное имя из списка контактов, отправил его через socket.emit с функцией обратного вызова. на стороне сервера: я получаю имя из socket.on и я ищу сообщения об этом имени, сохраняю их в массиве и отправляю обратно через тот же канал. на стороне клиента: он получает массив и показывает сообщения, связанные с этим именем. но из браузера консоли, если пользователь вводит имя из списка другого пользователя, он также получает свои сообщения.

Я пытался отправить данные и получить их по разным каналам, но я получил то же самое.

В1: как я могу удалить старые значения и запретить пользователям получать чужие сообщения? Q2: есть ли другой способ отправить данные из файла ejs и вернуть их с сервера, отличного от сокета?

на стороне клиента:

socket.emit('indata', oneSelectedName, function (data) {        
        for (let i = 0; i < data.length ; i ++ ){

        addMessage(data[i].userToName , data[i].body);

        }

    });

на стороне сервера:

io.on("connection", function(socket) {

    socket.on('indata', function (recipientName, fn) {

        MessageModel.find({'$or': [{'userFromName': senderName}, 
                        {'userToName':  senderName    }]}, function (err , allMessages){ 
                            let selectedNameMesagesArray=[];

                            allMessages.forEach(function(message){

                                console.log("selectedNameMesagesArray 00000 "  , message);

                                if (message.userToName === recipientName || message.userFromName === recipientName){
                                    console.log("selectedNameMesagesArray 11111 ");
                                    selectedNameMesagesArray.push(message);
                                }

                            });

                            console.log("selectedNameMesagesArray    2222  " , selectedNameMesagesArray ); 
                            fn(selectedNameMesagesArray );
                        }) ;   

    });

});
...