我已经集成了套接字io聊天。以用户身份登录时。我正在admin和所有其他用户之间通过用户面板获取所有消息。在从用户向管理员发送消息时,管理员面板中的会话是针对单个用户的。我希望管理员和用户之间通过用户仪表板进行会话。
控制器代码:
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>