我在客户端和服务器之间建立了一个聊天窗口,一切都很好,但是聊天页面需要刷新以显示最近的消息。我使用两种不同的登录名进行了测试,但是刷新的页面可以正常工作,但是另一个页面没有使用最新的消息进行更新
Server.js
io.on('connection', (socket) => {
console.log("---- client connected ----");
// send messages on every event
sendStatus = function (data) {
socket.emit('messages', data);
}
// get messages from the server
socket.on('send_message', function (data) {
new Chat({
user_id: data.user_id,
message: data.message,
date: data.date,
}).save(function(err, chat_data){
if (!err) {
Chat.findOne({ _id: chat_data._id }).populate('user_id').exec(function (err, chat) {
sendStatus(chat);
})
}
});
})
// send messages on load
Chat.find({}).populate('user_id').exec(function (err, chat) {
console.log('chattttttttt', chat)
socket.emit('onload_chat', chat);
})
})
Client.vue
mounted () {
this.getUsers()
this.$socket.on('messages', (data)=> {
this.chats.push(data)
console.log('on send message', data)
});
},
beforeMount () {
this.$socket.on('onload_chat', (data)=> {
this.chats = data
});
},