Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

302
Views
How do i make my server run and receive messages in real time with NodeJS?

I can create a NodeJS Server, but it looks like it is not receiving messages in real time. I have a device that will send messages to this server im creating over the time, and i just want to ''console.log'' the response every time it receives it. It is that simple. That said, is important to notice that I DO NOT have control over the server sending me the data. I haven't created it and i can't touch it. It is external. But i do know that it's sending the data to my server, i just don't know how to receive it in real time....

My code right now is this one. Feel free to change it and completely rework it if you want, im not very experienced in NodeJS. Also feel free to use any other library, as i have tried doing so using many others with no success.

import http from 'http';

const host = 'MY.IP';
const port = 0000;

const requestListener = function (req, res) {
  res.writeHead(200);
  res.end("--SERVER ONLINE.");
};

const server = http.createServer(requestListener);
server.listen(port, host, () => {
    console.log(`Server is running on http://${host}:${port}`);
});

EDIT: I believe i have failed to explain properly: What I need is to PRINT the data im receiving from the OTHER SERVER in the one from the code above. Code above creates server A. server A is receiving data from server B. I need to print the data server B sent on server A. Server B is sending the data via HTTP POST request.

EDIT2: I have changed my code, and im getting close to doing what i need,but still, no sucess. Now i have:

import http from 'http';
const PORT = process.env.PORT || 8000;
const httpServer = http.createServer();


httpServer.on('request', (request, response) => {
    if (request.url == '/')
        response.end('Server online!');
        console.log(request);
});

httpServer.listen(PORT, () => console.log(`Server running at ${PORT}`));

Everytime there is a request for the server it does indeed, print the request on my screen. I can see that server B is sending the data to this server i created, working fine and the data is 100% being sent. I just need to "console.log" the data im receiving now. Still no success.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

You need to listen for requests sent to your server by using <httpserver>.on('request', callback)

Try something like this

import http from 'http';
const PORT = process.env.PORT || 3000;
const httpServer = http.createServer();


httpServer.on('request', (request, response) => {
    if (request.url == '/')
        response.end('reached server!');
});

httpServer.listen(PORT, () => console.log(`running on port ${PORT}`));

In this example, by going to http://localhost:3000/ it should show "reached server!"

about 4 years ago · Juan Pablo Isaza Report

0

I have found the solution by myself. Took me almost 2 days, as i have no prior experience in NodeJS, but here is the answer. I hope it helps someone in the future:

import http from 'http';
const PORT = process.env.PORT || 8000;
const httpServer = http.createServer();


httpServer.on('request', (request, response) => {
    if (request.url == '/')
        response.end('Server online!');
request.on('data',function(data){
         console.log(data.toString());
});
      });



httpServer.listen(PORT, () => console.log(`Server running at: ${PORT}`));

The part i was missing was this one:

request.on('data',function(data){
             console.log(data.toString());
    });

I didn't knew i could use a 'on' event on a 'request',because 'request' is already an event by itself. But i could, and this solves my problem.

Now server A is receiving and printing every message from server B in real time, and i can do whatever i want with the response!

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!