2017-06-08 3 views
0

Ich versuche, Logout-Ereignis auszulösen, um die Client-Sitzung zu löschen und die Verbindung zu trennen. Aber ich kann online keine passende Lösung dafür finden. Hier ist mein Code mit Kommentaren:nodejs socket.io kann kein internes Ereignis ausgeben

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('/'); 
    }); 
} 

Bitte helfen Sie. In der Dokumentation gibt es nichts über diesen Teil.

Antwort

0

Wenn jemand auf ein solches Problem stößt, ist die Lösung einfach. Es scheint, dass es in der Version socket.io> 2 keine emit-Funktionalität gibt. Zumindest habe ich es nicht gefunden. Stattdessen kann der interne EventEmitter von nodejs verwendet werden, um interne Ereignisse zu senden:

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