节点服务器(networking套接字)崩溃

我试图做一个node.js服务器。
以下错误可能会在用户自己或刷新页面时出现:

在这里输入图像描述
这是我的服务器的代码:

var http = require("http"); var ws = require("C:/Program Files/nodejs/node_modules/npm/node_modules/nodejs-websocket/"); var colors = require('C:/Program Files/nodejs/node_modules/npm/node_modules/colors'); var fs = require("fs"); var request = "C:/Program Files/nodejs/node_modules/npm/node_modules/request"; http.createServer(function (req, res) { fs.createReadStream("index.php").pipe(res) }).listen(8080) // ################################################################################################################################### // ######################################################## CLASSE UTILISATEUR ####################################################### // ################################################################################################################################### var utilisateur = function(){ } // ################################################################################################################################### // ########################################################## CLASSE SERVER ########################################################## // ################################################################################################################################### var tableauUtilisateur = new Array(); var server = ws.createServer(function (connection){ connection.trigramme = null connection.on("text", function (str){ if (connection.trigramme === null){ newUtilisateur = new utilisateur(); connection.utilisateur = newUtilisateur; connection.trigramme = str; tableauUtilisateur.push(newUtilisateur); } else{ var code = str.substring(4,6); var reste = str.substring(6,str.length); switch(code){ case "01": // L'UTILISATEUR DEMANDE A SE CONNECTER var postData={data:reste}; require(request).post({ uri:"http://localhost/php/seConnecter.php", headers:{'content-type': 'application/x-www-form-urlencoded'}, body:require('querystring').stringify(postData) },function(err,res,body){ if(body != "non"){ var infos = body.split("-1-2-3-4-5-6-7-8-9-"); connection.utilisateur.id = infos[1]; connection.utilisateur.trigramme = infos[2]; connection.utilisateur.nom = infos[3]; connection.utilisateur.prenom = infos[4]; connection.utilisateur.admin = infos[6]; connection.trigramme = infos[2]; console.log(("> "+infos[2]+" S\'EST CONNECTE AU SERVEUR AVEC SES IDENTIFIANTS.").grey); connection.sendText("type01"+infos[0]+",,,,,"+infos[2]+",,,,,"+infos[3]+",,,,,"+infos[4]+",,,,,"+infos[5]+",,,,,"+infos[6]); broadcastExcept("type07"+infos[2]+"("+infos[3]+" "+infos[4]+")",connection.utilisateur.id); } else connection.sendText("type01non"); }); break; case "02": // L'UTILISATEUR DEMANDE A CHANGER D'ANIMATION reste += ",,,,,"+connection.utilisateur.id; var postData={data:reste}; require(request).post({ uri:"http://localhost/php/modifierAnimation.php", headers:{'content-type': 'application/x-www-form-urlencoded'}, body:require('querystring').stringify(postData) },function(err,res,body){}); break; case "03": // L'UTILISATEUR DEMANDE A SUPPRIMER UN COMPTE if(connection.utilisateur.admin == 1){ var postData={data:reste}; require(request).post({ uri:"http://localhost/php/supprimerCompte.php", headers:{'content-type': 'application/x-www-form-urlencoded'}, body:require('querystring').stringify(postData) },function(err,res,body){ connection.sendText("type03"+body); if(body == "oui") console.log(("> "+connection.trigramme+" A SUPPRIME UN COMPTE DONT L'ID EST : "+reste).grey); }); } else connection.sendText("type03non"); break; case "04": // L'UTILISATEUR DEMANDE A CREER UN COMPTE if(connection.utilisateur.admin == 1){ var postData={data:reste}; require(request).post({ uri:"http://localhost/php/creerCompte.php", headers:{'content-type': 'application/x-www-form-urlencoded'}, body:require('querystring').stringify(postData) },function(err,res,body){ connection.sendText("type04"+body); if(body == "oui"){ console.log(("> "+connection.trigramme+" A CREE UN COMPTE DONT LE TRIGRAMME EST : "+reste.split(",,,,,")[0]).grey); connection.sendText("type04"+body); } }); } else connection.sendText("type04non"); break; case "05": // L'UTILISATEUR DEMANDE A CHANGER LE TYPE D'UN COMPTE if(connection.utilisateur.admin == 1){ var postData={data:reste}; require(request).post({ uri:"http://localhost/php/changerTypeCompte.php", headers:{'content-type': 'application/x-www-form-urlencoded'}, body:require('querystring').stringify(postData) },function(err,res,body){ connection.sendText("type05"+body); var valeur = reste.split(",,,,,")[1]; for(var cpt=0;cpt<tableauUtilisateur.length;cpt++){ if(tableauUtilisateur.id == reste.split(",,,,,")[0]){ tableauUtilisateur.admin = valeur; } if(valeur == 1) console.log(("> "+connection.trigramme+" A DONNE LES DROITS ADMINISTRTEURS A "+reste.split(",,,,,")[2]).grey); else console.log(("> "+connection.trigramme+" A RETIRE LES DROITS ADMINISTRTEURS A "+reste.split(",,,,,")[2]).grey); } }); } else connection.sendText("type03non"); break; case "06": // L'UTILISATEUR DEMANDE A SE CONNECTER AVEC SES COOKIES var postData={data:reste}; require(request).post({ uri:"http://localhost/php/seConnecterCookies.php", headers:{'content-type': 'application/x-www-form-urlencoded'}, body:require('querystring').stringify(postData) },function(err,res,body){ if(body != "non"){ var infos = body.split("-1-2-3-4-5-6-7-8-9-"); connection.utilisateur.id = infos[1]; connection.utilisateur.trigramme = infos[2]; connection.utilisateur.nom = infos[3]; connection.utilisateur.prenom = infos[4]; connection.utilisateur.admin = infos[6]; connection.trigramme = infos[2]; console.log(("> "+infos[2]+" S\'EST CONNECTE AU SERVEUR AVEC SON ").grey+("COOKIE.").yellow); connection.sendText("type01"+infos[0]+",,,,,"+infos[2]+",,,,,"+infos[3]+",,,,,"+infos[4]+",,,,,"+infos[5]+",,,,,"+infos[6]); broadcastExcept("type07"+infos[2]+"("+infos[3]+" "+infos[4]+")",connection.utilisateur.id); } else connection.sendText("type01non"); }); break; case "08": // L'UTILISATEUR DEMANDE A MODIFIER SON MOT DE PASSE reste += ",,,,,"+connection.utilisateur.id; var postData={data:reste}; require(request).post({ uri:"http://localhost/php/modifierMotDePasse.php", headers:{'content-type': 'application/x-www-form-urlencoded'}, body:require('querystring').stringify(postData) },function(err,res,body){ if(body != "non"){ connection.sendText("type08"+body); } else connection.sendText("type08non"); }); break; } } }) connection.on("close", function (){ for(var cpt=0;cpt<tableauUtilisateur.length;cpt++){ if(tableauUtilisateur[cpt].trigramme == connection.trigramme){ console.log(("> "+connection.trigramme+" A QUITTE LE SERVEUR.").grey); tableauUtilisateur.splice(cpt, 1); } } }) }) server.listen(8081) function broadcast(str){ server.connections.forEach(function (connection){ connection.sendText(str) }) } function broadcastExcept(str,except){ server.connections.forEach(function (connection){ if(connection.utilisateur.id != except) connection.sendText(str) }) } 

交换机是在这里明确的消息types(连接,交谈等…)
我看了这个链接 ,但我不明白,也许这不是同一个错误:/

PS:我不认为这个eror是在connection.on("close", function (){因为我试图删除它,它是一样的。