Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
节点+;AngularJs+;Socket.io:net::ERR\u连接被拒绝_Angularjs_Node.js_Socket.io_Digital Ocean_Socket.io 1.0 - Fatal编程技术网

节点+;AngularJs+;Socket.io:net::ERR\u连接被拒绝

节点+;AngularJs+;Socket.io:net::ERR\u连接被拒绝,angularjs,node.js,socket.io,digital-ocean,socket.io-1.0,Angularjs,Node.js,Socket.io,Digital Ocean,Socket.io 1.0,我在浏览器的控制台中不断遇到此错误,因此我认为这是一个角度+socket.io问题: GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=LF3gkk7 net::ERR_CONNECTION_REFUSED 尽管如此,我还是按照建议更改角度vario如下: ctrl.socketIo = io(); ctrl.socketIo = io.connect(); ctrl.socketIo = io.con

我在浏览器的控制台中不断遇到此错误,因此我认为这是一个角度+socket.io问题:

GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=LF3gkk7 net::ERR_CONNECTION_REFUSED
尽管如此,我还是按照建议更改角度var
io
如下:

ctrl.socketIo = io();
ctrl.socketIo = io.connect();
ctrl.socketIo = io.connect('http://localhost:3001');
这些都不管用

这就是我的角度控制器的外观:

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

            });

         }]
     );
My index.html路径指向目录:

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

您得到的是
404
,因为您的socket.io模块没有正确初始化。
请尝试以下代码

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

是否存在端口不匹配?您正在使用端口
3000
3001
@mukeshharma,我在节点端使用:
var-portNum=process.env.port | 3001
当我调用
netstat-a-p
时,我也在使用digital ocean VPS。似乎没有使用端口3000。您的连接被拒绝了
,因为您的后端正在侦听端口
3001
,您的前端应用程序正在尝试连接到
3000
。好的,有一个指向端口3000的角度服务,现在我删除了那个服务,因为我不再需要它了,我得到了同样的错误,但是现在有了
端口3001
(我在更新2上发布了完整的错误)在原始帖子中:D我把答案放在你的评论之前。
'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);
});