2017-11-17 2 views
0

Ich versuche, eine Antwort von bestimmten Anfragen über die write Funktion zu bekommen.NodeJS bekommen Antwort von Net Socket schreiben

Ich bin mit einem Gerät über die net-Modul verbunden (das ist die einzige Möglichkeit, damit zu kommunizieren). Derzeit habe ich eine .on('data',function), um Antworten von der genannten Ausrüstung zu hören. Ich kann Befehle über die write Funktionen senden, auf die ich eine Antwortlinie erwarte. Wie kann ich das tun?

Aktuelle Code:

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"); 
}; 

Dies ist ein Arbeitscode. Das Senden eines Befehls an das Gerät über server.write gibt eine Antwort zurück, die nur im Terminal erscheint. Ich möchte diese Antwort direkt nach der write Anfrage zurückgeben. Vorzugsweise innerhalb der exports.write Funktion.

Antwort

0

Fügen Sie ein callback Argument zu Ihrer exports.write Funktion kann Ihr Problem lösen.

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) 
    }); 
}; 

rufen Sie Ihre write Funktion

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