sheriff sheriff - 3 months ago 13
Node.js Question

SSE (Server Sent Events) , Listen an event in Node.js server and POST it to other server

I have Event listener which triggers by SSE (Server-sent-events),How could i post the data to other server.


NODE JS


//including Event Source
var EventSource = require('eventsource');

var es = new EventSource('http://api.xyz.com:8100/update/');

//Listening URL Event Sourse
es.addEventListener('message', function (e) {

//Extract Json
var extractData = JSON.parse(e.data);

if(extractData.type == 'CALL' )
{
console.log(extractData);
//POST DATA
}
});


i need to post the data to other server other end is PHP

Answer

You can try with request library, Related Question: how to make an http post request in node js you can refer this.

//including Event Source
var EventSource = require('eventsource');

var request     = require('request');  /*****ADDED******/   

var es  = new EventSource('http://api.xyz.com:8100/update/');

//Listening URL Event Sourse 
es.addEventListener('message', function (e) { 

    //Extract Json
    var extractData =  JSON.parse(e.data); 

    if(extractData.type == 'CALL' )
    {  
       console.log(extractData);

        //you can call a function 
        postDataToServer(extractData); 

    }
});

//Post Details to other server
function postDataToServer(SendingDetails)
{ 
    var ServerURL = 'OTHER_SERVAL_URL';

    request({
        url    : ServerURL,
        method : "POST",
        json   : true,
        body   : SendingDetails
    }, function (error, response, body){
        console.log(body);       
    });
}