2015-03-18 3 views
1

Как я могу инициировать испускание с сервера с помощью socketIO? У меня есть socket.on('My_Event') на моем сервере nodejs, и я хочу вызвать это событие из другого места на моем сервере с помощью .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); 

Happy Helping!

+0

ok. Я попробую. на самом деле не поклонник глобальных –

Смежные вопросы