Я пытаюсь создать приложение для чата.Но я сталкиваюсь с проблемой, когда пытаюсь периодически обновлять страницу чата с помощью функции setInterval () в Node.js. Ниже мой ajax-код:
setInterval(function(){
//retreive user chat
$.ajax({
url: '/getMessage',
method: 'POST',
data : {receiver:receiver,sender:sender},
dataType:'json',
success: function(response){
let oldMessages = document.querySelectorAll('#textArea .incoming');
let messages = response.data;
let data = messages.map(message => {
let html = `<span class="chatMsg ${sender!=message.sender? 'incoming':'outgoing' }">${message.message}</span>`;
return html;
}).join(" ");
document.querySelector('#textArea').innerHTML = data;
let newMessages = document.querySelectorAll('#textArea .incoming');
console.log(`OLD ${oldMessages.length} NEW ${newMessages.length}`);
if(oldMessages.length > 0){
if(newMessages.length>oldMessages.length){
console.log(`RING- ${newMessages.length} ${oldMessages.length}`);
document.querySelector('#msg-new').play();
document.querySelector('#chatForm').scrollTop = document.querySelector('#chatForm').scrollHeight;
}
}
}
});
},5000);
}));
Ниже приведен мой код в маршрутах / чате.JS файл:
router.post('/getMessage',function(req,res){
Message.find(
{$or:[
{sender:req.body.sender,receiver:req.body.receiver},
{sender:req.body.receiver,receiver:req.body.sender}
]
},
(err,data) => {
res.send({success:true,data:data});
}
);
});
Но приведенный выше код не поддерживает контекст при переключении между пользователями в списке чата.Пожалуйста, помогите мне своевременно обновить эту страницу.