2016-03-29 29 views
0

Ben bir açısal + socket.io sorun olduğunu düşünüyorum bu yüzden Tarayıcımdaki konsolunda bu hatayı almaya devam: Ben söyledim tavsiyelerde takipDüğüm + angularjs + Socket.io: Net :: ERR_CONNECTION_REFUSED

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

Eventho gibi açısal Var io değiştirmek için: çalışmış olanların

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

hiçbiri!

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); 

      }); 

     }] 
    ); 

Benim index.html yolu dirs işaret ediyor:

<!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> 

sen benim dir yapısı yolunda görebilirsiniz doğru işaret gibi

Bu benim Açısal kontrolör böyle görünüyor socket.io.js:

enter image description here

Upd Ben Dijital okyanus VPS kullanıyorum ve ben netstat -a -p çalıştırdığınızda o LİMAN 3000 kullanılıyor orada görünmek DEĞİLDİR

yedi.

enter image description here

:

GÜNCELLEME 2: Uygulamamda

Bir hizmet localhost bağlanmaya çalışıyordu

: Ben alıyorum şimdi orada soket gerekmez çünkü 3000 bu yüzden o kısmı sildim

Güncelleme 3 arka uç kodu: socket.io modülü düzgün başlatılmadı çünkü

'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

herhangi liman uyuşmazlığı var mı? '3000' ve '3001' bağlantı noktasını kullanıyorsunuz. –

+0

@MukeshSharma, düğüm tarafında kullanıyorum: 'var portNum = process.env.PORT || 3001; 'i aradığınızda ben de dijital okyanus VPS kullanıyorum' netstat -a -p'it o LİMAN 3000 Sen 'Bağlantı Refused', arka uç limanında dinliyor çünkü' 3001 alıyorsanız – Jeka

+0

kullanılıyor görünmüyor ', ön uç uygulamanız '3000''e bağlanmaya çalışıyor. porta işaret eden bir açısal hizmeti vardı –

cevap

1

Sen 404 alıyorsanız.
Aşağıdaki kodu deneyin.

'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

Nazik yardımınız için çok teşekkürler! :) – Jeka