Report this

What is the reason for this report?

Connection to nodejs (express) refused

Posted on April 2, 2022

Hello everyone,

I’m a long term programmer, but haven’t used nodejs much in my code. Now I need to use it in my current code and I’ve ran into a problem that I can’t seem to figure out myself, I have googled a lot but nothing seem to fix it.

I am trying to get my website to connect to the nodejs server running on same host.

If I visit the url in my browser, it works fine (http://localhost:6857/socket.io/?EIO=4&transport=polling) and I see this respond

0{"sid":"s_v860SbNO4toknPAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":20000}

But when I try to connect thru the website, I just get

GET http://localhost:6857/socket.io/?EIO=3&transport=polling&t=N_gL_HZ net::ERR_CONNECTION_REFUSED

This is my server.js

// use express
var express = require("express");
 
// create instance of express
var app = express();


 
// use http with instance of express
var http = require("http").createServer(app);

// start the server
var port = 6857;
http.listen(port, '0.0.0.0', function () {
    console.log("Listening to port " + port);
});

// create socket instance with http
var io = require("socket.io")(http);

// add listener for new connection
io.on("connection", function (socket) {
    // this is socket for each user
    console.log("User connected", socket.id);
});

io.on("connect_error", (err) => {
  console.log(`connect_error due to ${err.message}`);
});

And this is my JS code inside my website

<script>
    var server = "http://localhost:6857/";
    var io = io(server);
</script>

Can someone guide my in the right direction for how to fix this, so I can begin using nodejs inside my website?



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

This comment has been deleted

Socket IO requires you to explicitly enable CORS. See: socket.io/docs/v4/handling-cors

Hello,

Rather than using localhost try with the server IP so that your frontend could connect to the backend service on the server. Otherwise the fronted would try to connect to your PC rather than the localhost on the server.

Let me know how it goes!

Also you could install Nginx and use it as a reverse proxy so that you don’t have to specify the 6857 port each time, here is a quick video that shows you how to do that:

Best,

Bobby

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Start building today

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

Dark mode is coming soon.