Pour une telle tâche, je recommanderais youse MongoDB et Ajax. C'est beaucoup plus simple, tout ce que vous avez à faire est d'ajouter du code ajax du côté client (html) et de gérer les requêtes côté serveur.
Exemple simple:
utilisateur normal envoie le message
html
fichier
$.ajax({
method: "POST",
url: "http://myUrl.com/myPath",
data: { message: "Hello this is a message" },
contentType: "application/json",
success: function(data){
//handle success
},
error: function(err){
//error handler
}
})
côté serveur
app.post('/myUrl', function(req, res){
if(req.body){
//message handlers here
}
Users.find({type: 'admin'}, function(err, users){
var message = req.body.message;
for(var i = 0; i < users.length, i++){
//make sure you have the type as adminPending from the schema in MongoDB
message.save(//save this message to the database); //save this message to the database as 'adminPendingType'
}
})
})
Venir à admins, pour qu'ils sachent qu'ils ont reçu un message, vous devez faire un appel ajax chaque seconde d, c'est ainsi que facebook/twitter gère la plupart des choses. Donc, en demandant au serveur encore et encore s'ils ont une nouvelle boîte de réception.
Administrateur html
function messageGetter(){
$.ajax({
method: "POST",
url: "http://myUrl.com/didIreceiveAmessage",
data: { message: "Hello this is a message" },
contentType: "application/json",
success: function(data){
//success handler with data object
if(data['exists']== "true"){
//add your data.message to the html page, so it will be seen by the user
}
},
error: function(err){
//error handler
}
})
}
setInterval(messageGetter, 1000); //check it each second
côté serveur
app.post('/myUrl', function(req, res){
if(req.body){
//message handlers here
}
Message.find({type: 'adminPending'}, function(err, messages){
//find the admin info from cookies here
if(messages.length == 0){
console.log("No messages pending");
return false; //exit the request
}else{
var admin = req.session.admin.id; //admin user
//handle stuff with admin
messages['exists'] == true;
res.send(messages);
//change the type of message from adminPending to adminSeen
return false; //exit the message
}
})
})
C'était juste un exemple simple et rapide sur la façon de le faire avec ajax et MongoDB avec nœud. Bien sûr, le codage sera beaucoup plus long, car vous devez gérer le changement de type de messages et les sauvegarder.
s'il vous plaît voir la réponse – turmuka