29-07-2012, 10:06 AM
(Modification du message : 30-07-2012, 12:28 PM par Angelblade.)
Bonjour à tous.
Je découvre la technologie des sockets et j'en viens à me poser une question.
Imaginons que coté client je manipule des fichiers, je demande au serveur deux types d'actions:
- Celles sans impact sur d'autre utilisateur
Lire un fichier, Lister un dossier, etc
- Celles ayant un impact:
Déplacer, renommer, supprimer, etc
Lorsque l'action a un impact, les autres utilisateur sont notifiés classiquement par un event.
Lorsqu'elle n'a pas d'impact je n'ai pas besoin de prévenir les autres.
Comment feriez vous pour implémenter ces deux comportements?
Est ce que vous écouteriez un event 'rename' puis enverriez une requête 'renomme a en b'.
Mais dans ce cas si l'action échoue comment avoir la réponse du serveur?
Edit:
J'ai trouvé comment récupérer une réponse du serveur lorsqu'on lui envoit un event.
Je découvre la technologie des sockets et j'en viens à me poser une question.
Imaginons que coté client je manipule des fichiers, je demande au serveur deux types d'actions:
- Celles sans impact sur d'autre utilisateur
Lire un fichier, Lister un dossier, etc
- Celles ayant un impact:
Déplacer, renommer, supprimer, etc
Lorsque l'action a un impact, les autres utilisateur sont notifiés classiquement par un event.
Lorsqu'elle n'a pas d'impact je n'ai pas besoin de prévenir les autres.
Comment feriez vous pour implémenter ces deux comportements?
Est ce que vous écouteriez un event 'rename' puis enverriez une requête 'renomme a en b'.
Mais dans ce cas si l'action échoue comment avoir la réponse du serveur?
Edit:
J'ai trouvé comment récupérer une réponse du serveur lorsqu'on lui envoit un event.
// Coté client
socket.emit('rename', '/path/filea', '/path/fileb', function(error){
console.log(error);
});
// Coté serveur
socket.on('rename', function(oldpath, path ,callback){
fs.rename(oldpath, path, callback);
// callback est une fonction qui seras appelée coté client
});