【问题标题】:Angular page to node.js server socket connectionAngular 页面到 node.js 服务器套接字连接
【发布时间】:2015-06-24 07:33:40
【问题描述】:

我有这个问题。

这是我的 node.js 服务器中的代码:

var bodyParser = require("body-parser");
var express    = require('express');
var http       = require('http').Server(app);
var io         = require('socket.io')(http);
var app        = express();

......    

io.sockets.on('connection', function(socket){
  socket.emit('welcome', { message: 'Welcome!', id: socket.id });

    socket.on('i am client', console.log);
});

app.listen(port);

还有我的角度页面:

var modulo_angular = angular.module('app', ['btford.socket-io', 'ngRoute']);
modulo_angular.factory('socket', function (socketFactory) {
    var myIoSocket = io.connect('http://myurl:8000/');
    var mySocket = socketFactory({
        ioSocket: myIoSocket
    });
   return mySocket;
});

modulo_angular.controller("appCtrl",['factoryController', 'socket',controladorSecundario]);

我得到的错误是:

GET http://myurl:8000/socket.io/?EIO=3&transport=polling&t=1435131076378-14 404 (Not Found)

如果我使用“http://localhost”而不是 url,我会得到 ERR_CONNECTION_REFUSED。我在同一个网络中,通过 vpn 连接并打开端口。我的代码中还需要其他内容吗?

【问题讨论】:

    标签: javascript angularjs node.js sockets socket.io


    【解决方案1】:

    显然浏览器正在尝试获取缺少的http://myurl:8000/socket.io/。我相信这是由于您的服务器设置造成的。

    试试这个:

    var port = 8000;
    var app = express();
    var server = app.listen(port); // start the server
    var io = require('socket.io').listen(server); // start socketIO
    

    【讨论】:

    • 我认为端口没问题。 (对不起,我忘了添加 'var port = 8000;'),因为我可以访问由我的 node.js 服务器提供的网页。
    • 通过说“这是由于您的服务器设置”我并不是指端口。我的意思是用 socketIo 设置 express 是不正确的。尝试在浏览器中打开http://myurl:8000/socket.io/
    • 我得到 {"code":0,"message":"Transport unknown"}。我猜你是对的。如何检查我的服务器设置?
    • 尝试用答案中的行替换 node.js 代码中的前 5 行。
    • 同样的问题。无论如何,我必须添加 bodyParser 和 require('express') 行以避免在我运行服务器时出错。我通过 npm 安装了 socket.io,在日志中没有看到任何错误。
    猜你喜欢
    • 2015-02-16
    • 2011-04-27
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2017-02-25
    • 2021-02-11
    相关资源
    最近更新 更多