Je dois obtenir une instance de socket dans ma requête ajax sur le serveur dans le module node.js. Voici mon code.Obtenir l'instance de socket sur le serveur
app.js
io.set('authorization', function (handshake, callback) {
if (handshake.headers.cookie) {
cookieParser(handshake, null, function(err) {
handshake.sessionID = handshake.signedCookies['express.sid'];
});
} else { return callback('No cookie transmitted.', false); }
});
io.sockets.on('connection', function(socket) {
var session = socket.handshake.session;
var userid = session.userid;
socket.join("room");
//make user offline
socket.on('disconnect', function() {
//my code goes here...
//make user offline
})
});
Maintenant, dans l'une de ma demande ajax, je veux par exemple socket
app.post('/logout', function (req, res) {
//here i want socket instance, so I can emit message to all socket, accept this.
});
Comme je sais, chaque onglet crée sa propre nouvelle connexion socket, mais la session est unique entre tous les onglets du navigateur. Donc, comment puis-je stocker socket pour chaque onglet sur le côté serveur, où je peux trouver facilement l'instance de socket, puis diffuser le message à toutes les sockets, à l'exclusion de ce socket qui crée des événements. (signifie la connexion socket de l'onglet actif de l'utilisateur)
grâce