首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js打印输入字母

Node.js打印输入字母
EN

Stack Overflow用户
提问于 2014-05-12 14:07:12
回答 1查看 117关注 0票数 0

我试着用node.js构建一个聊天服务器,但是它把输入逐个字母地打印在其他客户端的控制台上,有没有办法把它们放在一起?

代码语言:javascript
复制
var net = require('net')

var chatServer= net.createServer()
clientList = []

chatServer.on('connection', function(client){
client.name = client.remoteAddress + ":" + client.remotePort
client.write('Hi' + 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 + " says" + message +"\n")
    }
}
}

chatServer.listen(9000, "127.0.0.1")

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-12 15:10:29

如果您的消息是换行符分隔的,您可以这样做:

代码语言:javascript
复制
chatServer.on('connection', function(client) {
  client.name = client.remoteAddress + ":" + client.remotePort;
  client.write('Hi' + client.name + "!\n");

  clientList.push(client)

  var buf = '';
  client.setEncoding('utf8');
  client.on('data', function(data) {
    buf += data;
    var i;
    while ((i = buf.indexOf('\n')) > -1) {
      broadcast(buf.substring(0, i), client);
      buf = buf.substring(i + 1);
    }
  });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23611261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档