NodeJS从网络套接字写入获得响应

时间:2017-11-17 21:34:45

标签: javascript node.js sockets

我正在尝试通过write函数获取特定请求的响应。

我通过net模块连接到设备(这是与它通信的唯一方式)。目前,我有一个.on('data',function)来听取上述设备的回复。我可以通过我希望收到一行响应的write函数发送命令。我怎么能这样做呢?

当前代码:

server = net.Socket();

// connect to server
server.connect(<port>,<ip>,()=>{
    console.log("Connected to server!");
});

// log data coming from the server
server.on("data",(data)=>{
    console.log(''+data);
});

// send command to server
exports.write = function(command){
    server.write(command+"\r\n");
};

这是一个有效的代码。通过server.write向设备发送命令会返回一个响应,该响应现在仅出现在终端中。我想在write请求之后立即返回该回复。最好在exports.write函数内。

1 个答案:

答案 0 :(得分:1)

callback函数中添加exports.write参数可以解决您的问题。

exports.write = function(command, callback){
    server.write(command+"\r\n");
    server.on('data', function (data) {
        //this data is a Buffer object
        callback(null, data)
    });

    server.on('error', function (error) {
        callback(error, null)
    });
};

拨打write功能

var server = require('./serverFilePath')
server.write('callback works', function(error, data){
    console.log('Received: ' + data)
})