Socket.IO : Socket.emit ne s'envois pas au serveur
Salut,
J'ai une application qui permet d'envoyé une notification à chaque connexion d'un membre.
Voici mon code serveur app.js :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| var https = require('https');
var mysql = require('mysql');
var fs = require('fs');
var options = {key:fs.readFileSync('../../etc/apache2/ssl/key.key'),cert:fs.readFileSync('../../etc/apache2/ssl/cert.crt')};
var server = https.createServer(options,app);
var connect = mysql.createConnection({host:'****',user:'****',password:'****',database:'****'});
var io = require('socket.io')(server);
io.sockets.on('connection', function(socket){
socket.on('loggued', function(){
socket.emit('msg', 'Vous êtes connecté !');
});
});
server.listen(1812); |
Le problème c'est que mon serveur ne reçois pas l'appel :
Code:
socket.emit('loggued');
J'exécute ce code dans le script de connexion des membres en ajax :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| $.ajax({
url: 'functions/login.func.php',
type: 'post',
cache: 'false',
dataType: 'json',
data: {email:email, mdp:mdp},
success: function(json){
if(json.reponse === 'member'){ /* Si un membre se connecte */
setTimeout(function(){ $(location).attr('href','../home'); },1800);
socket.emit('loggued');
} else if(json.reponse === 'admin'){ /* Si l'administrateur se connecte */
setTimeout(function(){ $(location).attr('href','../admin'); },1800);
socket.emit('loggued');
} else { /* Erreur de connexion */
$('#notif').hide().html('<div class="notif_error" id="notif_json">'+json.reponse+'</div>').fadeIn();
$('button[name=login]').html('Connexion');
$('button[name=login]').prop('disabled', false);
$('#mdp').val('');
$('.btn_success').removeClass('progress');
$('#email').focus();
}
}
}); |
Mais je pense que le problème vient de la redirection faite par js :
Code:
$(location).attr('href','../admin');
Avez-vous une idée pour résoudre ce problème ?
Merci :)