node-syslog-client icon indicating copy to clipboard operation
node-syslog-client copied to clipboard

Is it possible to send a response back from server to syslog-client?

Open nagarajanceg opened this issue 5 years ago • 0 comments

I have been trying to communicate between the syslog-client with Tcp transport and tcp-server. Communication between the syslog-client to tcp-server works well . I doubted the syslog-client doesn't provide the other way around like receiving a response data from tcp-server.

Tcp-sever:

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

    console.log('Received connection');

    socket.setEncoding('utf8');
    
    socket.on('data', function(data) {
        console.log('Socket recieved data');
        console.log(data);
        var ack = {
            type: 'hello_ack',
            data: {}
        };
           // Sending an acknowledge to syslog-client
    	socket.write(JSON.stringify(ack) + '\n');
	});

  }).on('error', (err) => {
 throw err;
 }).on('connection',function(data){
console.log("connection in establish");
})

server.listen(54764,() => {
     var address = server.address();
     console.log('opened server on %j', address);
});

Tcp-Syslog-client:

var syslog = require("syslog-client");
var os = require('os');

var options = {
    syslogHostname: os.hostname(),
    transport: syslog.Transport.Tcp,
    port:54764
};
var client = syslog.createClient("127.0.0.1", options);
var opts = {
    facility: syslog.Facility.Alert,
    severity: syslog.Severity.Critical,
    severityCode: 2,
    tag: 'error',
    hostname:os.hostname()
};

client.log("hello" , opts, function(error){
   if (error) {
      console.error(error);
    } else {
      console.log("sent message successfully");
    }
});

// Expect the server socket write data available at here
client.on("data", function(data){
  console.log("data received back ===> ", data);
});

client.on("error", function(data){
  console.log(data," === error ===");
});

The "hello" message is successfully passed from syslog-client to tcp-server works fine. But the response from tcp-server to syslog-client doesn't happen. I am not sure probably whether I missed something in responding at tcp-server or receiving at syslog-client.

I would like to know the syslog-client have the capability of sending and receiving data in Tcp transport mode.

nagarajanceg avatar Aug 19 '20 16:08 nagarajanceg