Salut,

J'ai une application qui consiste à connecter un membre à son socket et de mettre l'utilisateur dans un tableau des connectés.
Le problème c'est que je n'y arrive pas.

J'utilise mysql pour retrouver le membre qui se connecte, et avoir toutes ses infos (nom et prénom).
Voici mon code server.js :

J'aimerais savoir si c'est bien codé ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
var https = require('https');
var mysql = require('mysql');
var sha1 = require('sha1');
var app = require('express')();
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).listen(1812);
var i;
 
var connection = mysql.createConnection({
	host: '****',
	user: '****',
	password: '****',
	database: '****'
});
 
var io = require('socket.io').listen(server);
var users = [];
 
io.sockets.on('connection', function(socket){
 
	var me;
	for(i = 0; i < users.length; i++) {
		socket.emit('newusr', users[i]);
	}
 
	socket.on('login', function(user, callback){
		connection.query('SELECT * FROM users INNER JOIN users_infos ON users.id = users_infos.id WHERE email = ? AND mdp = ?',[user.email,sha1(user.mdp)],function(error, rows, fields){
			if(error){
				console.log(error);
				return;
			}
			if(rows.length == 1){
				var userIndex = -1;
				me = rows[0];
				for (i = 0; i < users.length; i++) {
					if (users[i].email === me.email) {
						userIndex = i;
					}
				}
				if(me !== undefined && userIndex === -1){
					users.push(me);
					io.sockets.emit('newusr', me);
					callback(true);
				} else {
					callback(false);
				}
			}
		});
	});
 
	socket.on('disconnect', function(){
 
	});
 
});
Les noms et prénoms des membres connectés s'affichent bien, mais quand ils se déconnectent ou quitte le navigateur, il ne se déconnecte pas.
J'ai rien mis dans la fonction "disconnect" parce que je ne sais pas quoi mettre

Merci d'avance pour votre aide.