Я интегрировал сокет io chat. При входе в систему как пользователь. Я получаю все сообщения между администратором и всеми остальными пользователями в пользовательской панели. При отправке сообщения от пользователя администратору разговор в админ-панели происходит для отдельного пользователя. Я хочу, чтобы разговор между администратором и пользователем был на панели пользователя.
Код контроллера:
app.post('/saveuserchat',isLoggedIn ,function(req, res) {
try {
var chatModel = new chat(req.body)
chatModel.save()
res.sendStatus(200)
//Emit the event
io.emit("chat", req.body.msg_desc)
} catch (error) {
res.sendStatus(500);
}
});
app.get('/getuserchat',isLoggedIn,function(req, res) {
chat.find({}, (error, chats) => {
res.send(chats);
});
});
Код Ejs:
<script>
var socket = io()
socket.on("chat", addChat)
$(() => {
getChats()
$("#send").click((e) => {
e.preventDefault();
var chatMessage = {
chat: $('#btn-chat-input').val(),
reciever: $('#adminid').val(),
sender: $('#userid').val(),
role: 'user',
msg_desc: $('#btn-chat-input').val(),
userid: $('#userid').val()
}
//console.log(chat);
postChat(chatMessage);
addChat(chatMessage);
$('#btn-chat-input').val();
});
})
function postChat(chat) {
$.post("/saveuserchat", chat)
}
function getChats() {
$.get("/getuserchat", (chats) => {
console.log(chats);
chats.forEach(addChat)
})
}
function addChat(chatObj) {
$("#chat_message").append(`<p class="usermsg">${chatObj.msg_desc}</p>`);
}
</script>