如何使用socketIO从服务器端触发发射?
我的nodejs服务器上有socket.on('My_Event')
,我希望通过.emit('My_Event')
从我服务器上的其他位置触发该事件。
我的目标是向客户端广播一些通知数据。
服务器端 - 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;
};
到目前为止,我无法让它发挥作用。我应该怎么做呢?
答案 0 :(得分:1)
一种选择是创建一个Socket.IO的单个全局实例,最终可以在多个模块/应用程序之间共享。
global.socket = require('socket.io').listen(app);
快乐帮助!