2017-06-08 46 views
0

我试图发出注销事件来清除客户端会话并断开连接。但我无法在网上找到合适的解决方案。这里是我的代码与意见:nodejs socket.io不能发出内部事件

exports.post = function(req, resp, next) { 
    var sid = req.session.id; 

    var io = req.app.settings.io;//import io object with event listeners 

    req.session.destroy(function(err) { 
     io.sockets.$emit('session:reload');//here I am trying to emit internal event but it does not work - says that it is not a function 
     if(err) return next(err); 
     resp.redirect('/'); 
    }); 
} 

请帮助。在文档中没有关于这部分的内容。

回答

0

如果有人遇到这样的问题,解决方法很简单。看来在socket.io> 2版本中没有放射功能。至少我没有找到它。相反,人们可以使用内部节点内置EventEmitter来发出内部事件:

var EventEmitter = require("events").EventEmitter; 
var ee = new EventEmitter(); 
io.ee = ee;