J'ai du mal à comprendre la raison de l'erreur que je reçois lorsque l'utilisateur tente d'écrire quoi que ce soit sur le serveur:écriture à des prises
TypeError: Object #<identifyClient> has no method 'write'
at writeToAll (/root/node/mud/server.js:13:15)
Pourquoi plaintes identifyClient() au sujet de l'écriture(), alors qu'il se produit dans writeToAll() (la ligne 15 a un commentaire à côté)? identifyClient() ne définit réellement que le nom du client, et ne devrait pas être concerné par ce qui se passe dans writeToAll().
var net = require("net");
var clients = [];
function identifyClient(client) {
this.name = null;
this.client = client;
}
function writeToAll(data, client) {
for (var i = 0; i < clients.length; i++) {
if (clients[i] != client) {
clients[i].write(data); // This is line 15
}
}
}
var server = net.createServer(function(client) {
var clientID = new identifyClient(client);
clients.push(clientID);
client.on("data", function(data) {
writeToAll(data, client);
});
});
server.listen(4444);
Merci. Ça a marché comme sur des roulettes. J'allais mettre en œuvre la suppression de l'utilisateur de la matrice, mais je voulais d'abord résoudre ce problème avant de poursuivre le développement. – Eleeist