在NodeJS TCP服务器中读取客户端数据输入

Den*_*mon 2 node.js

我试图创建一个NodeJS TCP服务器,它将读取客户端输入,然后相应地采取行动.

我想知道如何读取数据,因此我可以设置条件来执行过程.

var net = require('net');
var server = net.createServer(function (socket) {

socket.on('data', function(data) {
    buf = new Buffer(256);
    len = buf.write(data.toString());

    if (buf.toString('utf8', 0, len) === "test"){
        console.log("you typed test");
    }

    console.log(len + " bytes: " + buf.toString('utf8', 0, len));
});
socket.write("Connected to server.\r\n");
});
server.listen(8080, "127.0.0.1");
Run Code Online (Sandbox Code Playgroud)

我正在输出此处输入的值: console.log(len + " bytes: " + buf.toString('utf8', 0, len)); 但是当我在客户端终端窗口中实际键入'test'时,我在此日志上方的if语句与值'test'不匹配.

任何帮助表示赞赏

-克里斯

Den*_*mon 6

我用这个toString()方法解决了这个问题:

socket.on('data', function(data) {
  var response = data.toString().trim();

  if (/disconnect/.test(response)) {
    console.log("Client is diconnecting.");
    socket.end('Disconnecting you now.\r\n');
  } 
});

socket.on('end', function() {
  console.log('client disconnected');
});
Run Code Online (Sandbox Code Playgroud)