2016-03-29 24 views
0

Ich erhalte diesen Fehler in der Konsole meines Browsers so denke ich, es ist ein Winkel + socket.io Problem:Knoten + AngularJS + Socket.io: net :: ERR_CONNECTION_REFUSED

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

eventho ich Ratschläge an, der gesagt

ctrl.socketIo = io(); 
ctrl.socketIo = io.connect(); 
ctrl.socketIo = io.connect('http://localhost:3001'); 

keiner von denen gearbeitet: Winkel var io wie sich ändern! Diese

ist, wie mein Eckige Controller aussieht:

angular.module("app") 
    .controller("chatController", [ 
     'userService', 
     function (userService) { 

      var ctrl = this; 
      ctrl.messages = []; 

      ctrl.socketIo = io(); 
      ctrl.userName = userService.name; 

      ctrl.submit = function() { 

       ctrl.socketIo.emit("chat_message", ctrl.inputMessage); 

       ctrl.messages.push(ctrl.inputMessage);   

       ctrl.inputMessage = null; 
      }; 


      ctrl.socketIo.on("update_clients", function (msg) { 

       ctrl.messages.push(msg); 

      }); 

     }] 
    ); 

Mein index.html Pfad verweisen auf die Verz:

<!doctype html> 
<html> 
<head> 
//boilerplate... 
</head> 

<body ng-app="app"> 

//boilerplate... 

    <script src="/bower_components/socket.io-client/socket.io.js"></script> 

//boilerplate... 

</body> 
</html> 

Wie Sie in meinem dir Strukturpfad sehen zeigt richtig socket.io.js:

enter image description here

Upd ate

Ich benutze Digital Ocean VPS, und wenn ich netstat -a -p laufen, scheint es nicht, dass PORT 3000 verwendet wird.

UPdate 2:

Ein Dienst in meiner App zu localhost zu verbinden versuchte: 3000 so gelöscht ich, dass ein Teil, da ich dort bin ich jetzt nicht Steckdose schon daran gedacht:

enter image description here

Update 3 Endcode zurück:

'use strict'; 

var express = require("express"); 
var app = express(); 
var http = require("http"); 
var server = http.createServer(app); 
var io = require("socket.io")(http); 

//use environment var PORT or 3001 
var portNum = 3001; 


//route handler 
app.get("/", function (req, res) { 

    res.sendFile("./index.html", {root: "./client/"}); 
}); 

app.use(express.static('./client')); 

io.on("connection", function (socket) { 

    socket.on("chat_message", function (msg) { 

     socket.broadcast.emit('update_clients', msg); 

    }); 
}); 


server.listen(portNum, function() { 
    console.log("listening on port: " + portNum); 
}); 
+0

Gibt es einen Port-Mismatch? Sie verwenden Port '3000' und' 3001'. –

+0

@MukeshSharma, verwende ich auf der Knotenseite: 'var portNum = process.env.PORT || 3001; 'Ich benutze auch digitale Ocean VPS, wenn ich' netstat -a -p'nrufe. Es scheint nicht, dass PORT3000 verwendet wird. – Jeka

+0

Sie bekommen 'Connection Refused', weil Ihr Backend am Port' 3001 abhört ', Ihre Front-End-App versucht, sich mit' 3000' zu verbinden. –

Antwort

1

Sie erhalten 404 weil Ihr socket.io Modul nicht richtig initialisiert wurde.
Versuchen Sie den folgenden Code.

'use strict'; 

var express = require("express"); 
var app = express(); 
var http = require("http").Server(app); 
var io = require("socket.io")(http); 

//use environment var PORT or 3001 
var portNum = 3001; 


//route handler 
app.get("/", function (req, res) { 
    res.sendFile("./index.html", {root: "./client/"}); 
}); 

app.use(express.static('./client')); 

io.on("connection", function (socket) { 
    socket.on("chat_message", function (msg) { 
     socket.broadcast.emit('update_clients', msg); 
    }); 
}); 


http.listen(portNum, function() { 
    console.log("listening on port: " + portNum); 
}); 
+0

Vielen Dank für Ihre freundliche Hilfe! :) – Jeka

Verwandte Themen