2017-11-17 3 views
0

write関数を使用して特定の要求から応答を取得しようとしています。netソケットからの応答を取得するNodeJS

私は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機能内にある。

答えて

0

あなたの問題を解決できるexports.write関数に引数をcallbackに追加してください。

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) 
}) 
関連する問題