I am starting to use NodeJS and Socket.IO. I am trying to set up a basic example with a NodeJS http server and establish a Socket.IO connection to the server.
I am also using angular JS and basically what I want is that when a user presses a button then the connection to the server is established. However, when I try it I get this error
GET net::ERR_CONNECTION_REFUSED
Here is my code:
server.js
var http = require('http');
var server= http.createServer(handler);
var io = require('socket.io')(server);
server.listen(8080);
function handler(req, res) {
res.writeHead(200);
res.end('Hello Http');
}
io.on('connection', function (socket){
socket.emit('news', { hello: 'world' });
console.log('connected!');
});
app.js
var app = angular.module('testApp', ['ngRoute']);
app.controller('TestCtrl', function ($scope){
$scope.msg= "";
$scope.try = function (){
$scope.msg= "ALO"
var socket = io(');
socket.on('news', function (data) {
console.log(data);
});
};
});
And on my test.html file:
<body ng-controller="TestCtrl">
<h2>{{msg}}</h2>
<button ng-click="try()">Try</button>
<script src="../js/angular.min.js"></script>
<script src="../js/angular-route.min.js"></script>
<script src="../js/app.js"></script>
<script src="../node_modules/"></script>
<!-- <script src="/"></script> -->
</body>
I think that the error might be something related to the path I use when including the socket.io.js I have tried also using directly localhost:8080 in the path because I read it could be a solution but that didn't work. So please, I appreciate any help given. Thanks!
5 Answers
I faced exactly the same issue. I did not see the ERR_CONNECTION_REFUSED in socket.io@~0.9. The error surfaced after I upgraded socket.io to 1.3.
I solved it by simply removing the URL from the client side constructor:
Change
var socket = io(');
To
var socket = io();
As the socket.io tutorial showed:
If your server is listening on port 8080, you need to connect to that port.
var socket = io(');
And as you're using a relative path, the socket.io lib will be served fine.
<script src="/"></script>
It turns out that the socket.io was being installed in a funny folder and therefore it was not being recognised or loaded. I solved this by creating a package.json and declaring the dependencies there so that when I do npm install it installs the folder in the right place.
Also Ben Fortune was right and I also modified that...I hope this helps other people because I struggled A LOT to figure that out :)
I was accessing IP of my cloud server to chat. suddenly The server was down.Then I got this polling error. Finally I figured out The problem is with that server.make sure your server is up.
I changed IP address to zero. please assume your server address
socket = io.connect('0.0.0.0:8110');
const { Server } = require("socket.io");
const app = express();
let port = process.env.PORT || 8080;
const server = http.createServer(app);
server.listen(port, () => console.log("App listening at localhost:" + port));
It work for me :)
See doc