2015-03-18 61 views
1

如何使用socketIO从服务器端触发发射? 我在我的nodejs服务器上有一个socket.on('My_Event'),我希望通过.emit('My_Event')从服务器上的其他位置触发该事件。
我的目标是向客户端广播一些通知数据。socket.io - 触发器从服务器端发射?

服务器端 - app.js

var app = express(), 
    server = http.createServer(app), 
    io = require('socket.io')(server); 

io.on('connection', function(socket){ 
    socket.on('My_Event', function(data){ 
     socket.volatile.emit('event', data); 
    }); 
}); 

server.listen(config.listenPort, '0.0.0.0', 511, function() { 
    // config.listenPort is already defined 
    console.log('node Server - listening on port: ' + config.listenPort); 
}); 

出口 - 从中​​我想触发事件

var io = require('socket.io')(); 

exports.addStrategy = function(app) { 

    var fn = { 

    doSomething : function(req, res, next) { 

     // HERE I wish to trigger my socket event 
     // io.emit('MY_EVENT', {}); ???? 

     res.status(200).json(done()); 
    }; 
    return fn; 
}; 

到目前为止,我无法得到它的模块上班。我应该怎么做?

回答

1

一种选择是创建一个全局的Socket.IO实例,最终可以跨多个模块/应用程序共享。

global.socket = require('socket.io').listen(app); 

快乐帮助!

+0

好的。我会尝试的。尽管如此,它并不是全球范例的粉丝 – 2015-03-20 11:20:19