oui je pense que c'est possible pour le pair à pair.
Pour éviter de consulter sans arret la base de donnée, ce que tu pourrais faire c'est que chaque client verifie qu'un autre client est connecté, et ceci de façon circulaire : C1>C2>C3>C4>C1 (">" = verifie si CX connecté). La base de donnée des ip ne servirait donc qu'aux clients qui se connectent. Le nouveau client se connecterait sur le dernier arrivé par exemple,en lui donnant son ip, ensuite cette ip serait transférée via la chaine circulaire pour alimenter la base de donnée des connectés de chaque client.
Si C2 veut se deconnecter, il le signale à C3(C3 signale la deconnection via la chaine) . Si jamais C2 se deconnecte brutalement, C1 le verra et le signalera aux autres.
Ensuite C1 se connecte à C3.
La chaine deviendrait C1>C3>C4>C1.
Quand un client veut envoyer un message à tout le monde, son message pourrait-etre transféré via cette chaine circulaire ou en envoyant lui meme à tous les clients en consultant sa base de données ?
...
C'est peut-etre pas le bon principe mais c'est ce que je m'imagine. Ca pourrait permettre au groupe de clients d'etre presque autonome.
Partager