你好,我正在node.js上运行chatserver的基本代码。这几乎从书中解脱出来 - Node:Up and Running。问题是当一个客户端键入一条消息时,他的消息是在每个按键时传输的,而不是在完成一行并按下回车后导致如下输出 - client1:(发送)您好 Client2:(接收)127.0。 0.1:50672>ħ127.0.0.1:50672>e 127.0.0.1:50672>l 127.0.0.1:50672>l 127.0.0.1:50672>onode.js中的chatserver基本错误
但是这是应该怎么来 客户机2:(临危) 127.0.0.1:50672> hello
这里发生的情况是,每次按键时都发送消息,而不是按下回车键。我从别人那里提起了git的另一个示例代码,发生了同样的事情!这里是我的代码:
var net = require ('net');
var chatServer = net.createServer(),
clientlist =[];
chatServer.on('connection',function(client){
client.name = client.remoteAddress+':'+client.remotePort;
client.write('Welcome '+ client.name + '!\n');
clientlist.push(client);
client.on('data',function(data){
broadcast(data,client);
});
});
function broadcast(message, client){
for(var i=0;i<clientlist.length;i+=1){
if(client !== clientlist[i]){
clientlist[i].write(client.name + ":"+ message);
}
}
}
console.log("Chatserver Started")
chatServer.listen(9000);
这里是产生相同的结果GitHub的例子: GITHUB 如何纠正这种行为?
包括您的客户端JavaScript。我怀疑你的问题是你每次按键后都要传回你的Node服务器,当你只想在用户点击输入(e.keyCode == 13) – 2013-05-10 13:49:27
之后,客户端只是普通的旧windows命令提示符,首先我使用telnet localhost 9000进行连接,然后我输入!我从一个更多的命令提示符来添加一个客户端。 – 2013-05-10 14:13:35