设置socket.io-client连接的选项

时间:2016-10-10 22:00:46

标签: angularjs sockets socket.io

我有一个socket.io服务器设置了node.js,一个客户端管理器设置在angular应用程序中。我正在使用socket.io-client库进行连接。我用angular-socket-io将它传递给控制器​​:

app.factory('mySocket', function (socketFactory) {
   return socketFactory();
});

app.factory('socket', ['mySocket', '$rootScope', socket]);

app.controller('MainController', ['$scope', 'socket', MainController]);

我的服务器:

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

app.get('/', function(req, res){
});

io.on('connection', function(socket) {
    socket.emit('welcome', { message: 'Welcome!', id: socket.id });
    socket.on('i am client', console.log);
});

http.listen(3000, function(){
   console.log('listening on *:3000');
});

基本的客户服务:

  var socket = io.connect("http://localhost:3000");
   console.log(socket);

// Add a connect listener
socket.on('connect',function() {
  console.log('Client has connected to the server!');
  socket.emit('i am client', "hi!");

  socket.on('welcome', console.log);
});

我无法连接它们(两个独立的项目在不同的端口上运行),直到我强迫uri在socket.io.js文件中http://localhost:3000 ...

所以我的问题是:如何在选项中设置我的uri或主机和端口,以便获得正确的uri?只是说,像

这样的经典
io.connect("http://localhost:3000");

根本不起作用。

编辑:想出来。在主要的js文件中,启动了socketFactory(),它必须是这样的:

app.factory('mySocket', function (socketFactory) {

var myIoSocket = io.connect('http://localhost:3000');
  return socketFactory({ ioSocket: myIoSocket });
});

0 个答案:

没有答案