Angular页面到node.js服务器套接字连接

我有这个问题。

这是我的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); 

和我的angular度页面:

 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。 我在同一个networking中,通过一个VPN连接并打开端口。 我的代码中需要其他东西吗?

显然浏览器试图得到http://myurl:8000/socket.io/缺less。 我相信这是由于您的服务器设置。

尝试这个:

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