无效的非string/缓冲区块Node.js

我在大学学习Node.js,这是我第一次学习这种编程语言。 聊天服务器的尝试有一些错误。 当我尝试连接一个客户端与服务器,连接立即closures,并出现错误“无效的非string/缓冲区块”。 我上传了一些截图,你可以检查什么是错的,因为我一直在想这个问题,而且我没有find任何解决方法。

点击这里查看我的Git bash

我在JavaScript中的代码:

var net = require('net'); var s = require var sockets = []; var nombres = []; var nombresUsados = []; console.log("Se ha iniciado el sevidor"); var server = net.createServer(function(socket){ socket.push(socket); nombres.push("Cliente:" + sockets.indexOf(socket)); nombresUsados.push("Cliente:" + socket.indexOf(socket)); console.log("Cliente aceptado, nick:" + nombres[sockets.indexOf(socket)]); socket.write("Bienvenido" + nombres[sockets.indexOf(socket)]+ "\n"); ![enter image description here][2]socket.on('data', function(d){ var entrada = d.toString(); var UsuarioUnico = entrada.match(/^msg/); var cambiarNick = entrada.match(/^nick/); var quit = entrada.match(/^quit/); if(cambiarNick == "nick"){ var repetido = 0; var nombresSinNick = entrada.replace(cambiarNick, ''); for(var i = nombres.length-1; i<=0; i--){ if( nombresSinNick.substring(0,nombres[i].toString().length) == nombres[i].toString()){ socket.write("KO, escoja otro nombre\n") repetido = 1; } }; if(repetido == 0){ nombres[sockets.indexOf(socket)] == nombresSinNick.trim(); process.on('uncaughtException', function(err){ socket.write("KO\n"); }); socket.write("OK. " + nombres[sockets.indexOf(socket)] + "\n"); console.log(nombresUsados[sockets.indexOf(socket)]) + "su nombre ha sido cambiado por:" + nombres[sockets.indexOf(socket)]; nombresUsados[sockets.indexOf(socket)] = nombresSinNick.trim(); } } else if (UsuarioUnico = "msg"){ var nombresSinMsg = entrada.replace(UsuarioUnico, ''); var encontrado = 0; for(var i = nombres.length-1; i<=0; i--){ if( nombresSinMsg.substring(0,nombres[i].toString().length) == nombres[i].toString()){ var mensaje = nombresSinMsg.replace(nombres[i], ''); } }; socket.on('end', function() { // CALLBACK: desconexión de cliente if(quit == 'quit'){ var i = nombres[sockets.indexOf(socket)]; sockets.splice(i, 1); console.log("Ha salido el usuario:" + nombres[sockets.indexOf(socket)]); } }); } }); }); server.listen(9000); 

我认为这个问题是socket.push(socket) 。 可能你的意思是sockets.push(socket) 。 你现在正在做什么,试图将套接字实例推入套接字stream,因为错误说,它不是一个string或缓冲区。