2017-06-08 41 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;