Em muốn lưu dữ liệu tin nhắn vào database của mongoDB, khi user truy cập sẽ load tin nhắn lên lại, nhưng em gặp 1 vấn đề là sau khi user A chat thì dữ liệu được lưu vào database rồi nhưng khi người B truy cập lại không thấy, phải load lại server thì mới hiện được database
Code Bên server
var data_from_server;
user.find(function(err, users) {
if (err) {
console.log("Can't get data from server ");
return null;
} else {
data_from_server = JSON.stringify(users);
}
});
io.on('connection', function(socket) {
console.log('Co nguoi ket noi ' + socket.id);
socket.on('disconnect', function() {
console.log(socket.id + ' ngat ket noi ');
});
socket.on('Client-send-data', function(data) {
var new_message = new user();
new_message.mess = data;
console.log(socket.id + ' gui 1 tin nhan ' + data);
new_message.save(function(err) {
if (err) console.log('Error on save!');
});
io.sockets.emit('Server-send-data', data);
});
socket.emit('Server-send-all-data', data_from_server);
});
Code bên client
var socket = io('localhost:3000');
socket.on('Server-send-data', function (data) {
var p = document.createElement('p');
var text = document.createTextNode(data);
p.appendChild(text);
document.getElementById('content').appendChild(p);
});
socket.on('Server-sent-all-data', function (data) {
data = JSON.parse(data);
for (var i = 0; i < data.length; i++) {
var p = document.createElement('p');
var text = document.createTextNode(data[i].mess);
p.appendChild(text);
document.getElementById('content').appendChild(p);
}
});
Code bên client:
http://codepad.org/R0GcqxCw
Code bên server:
http://codepad.org/WrnzEZPS