2014-10-08 94 views
0

好了,所以我有我的插座IO接口将信息发送到前端和客户端也能够应对,从而节省了返回的数据。快线和插座io的

然而,在server.js文件中启动套接字io时,它的唯一用途发生在'/user/home'路由中并没有任何意义。

所以我的问题是我如何使用套接字IO在一个途径,如果HTTP服务器在server.js启动,而无需调用http服务器的新实例?

回答

0

这是我有它配置:

我有一个处理插座IO东西的io.js库:

var io = require('socket.io')(); 
var redis = require("redis"); 
var client = redis.createClient(); 
io.path('/socket'); 
client.on('connect', function() { 
    console.log("Redis successfully connected"); 
}); 
io.on('connection', function (socket) { 
    console.log('a user connected: '+ socket.handshake.query.uid_bsp); 
    console.log('socket id: '+socket.id); 
    //clients.uid_bsp=socket.id; 
    //console.log('a user added: '); 
    client.set(socket.handshake.query.uid_bsp,socket.id); 
}); 

io.notifyTransfer = function (uid_bsp,data){ 
    client.get(uid_bsp,function(err,socketid){ 
      console.log('notifying: '+socketid); 
      io.to(socketid).emit('update', data); 
    }); 
}; 



module.exports = io; 

而且在我已经要求该库server.js,并连接到服务器:

var httpserver = http.createServer(app); 
var io = require('./src/utils/io.js'); 
... 
var server = httpserver.listen(app.get('port'), function(){ 
     console.log('Express server listening on port ' + app.get('port')); 
    }); 

io.attach(server); 
在我的路线(这是像休息,前,....单独的js文件)

所以,我可以使用notifyTransfer方法只需要IO库。

希望这会有帮助