-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
client.py ajout erreur si la partie est finie et limitation des requètes serveur avec end() #1
Conversation
J'ai ajouté un code d'erreur dans le cas où un client fait une requète de bourse alors que la partie est finie (notEnd) Cependant ce code d'erreur fait un appel à fin() à chaque requète de bourse donc celà doublerait le nombre de requète au serveur pendant une partie (risque de problèmes s'il y a trop de requète au serveur). C'est pour celà que j'ai instauré un compteur de temps local au client, afin que fin() ne fasse plus de requète au serveur, mais retourne simplement la valeur du compteur local tant que la partie n'est pas finie Les deux erreurs possibles de désynchronisation des timers entre client/serveur ne posent pas de problème: Si le client est en avance, alors son timer finira avant celui du serveur et donc il y aura des requètes au serveur pendant les dernières millisecondes de la partie qui renverra le temps réel. Si le client est en retard, le client fera des requètes au serveur que le serveur rejettera car la partie est finie.
Update client.py ajout erreur si partie finie, et limitation des requetes end() au serveur
Bonne idée, ça évite effectivement de modifier le serveur. Par contre, il y a quelques soucis mineurs avant de pouvoir intégrer la contribution :
|
J'ai remodifié mon pull request Autre chose : public Set getHistoriqueEchanges(Action a) { |
En effet, les 2 informations sont nécessaires mais un seul champ suffit. Pour cela, on peut faire l'addition dans la méthode top au lieu de la méthode fin (76a6432). Merci pour la contribution. Pour les contributions au serveur, il est conseillé d'utiliser l'IDE Eclipse et d'importer le projet SimBourse pour lancer le serveur en local. Il faudra alors préciser au client de se connecter en localhost.
Sur ta question plus précisément, c'est une bonne idée pour la fonction historique (qui ne marchera pas pour les fonctions achats et ventes). Si tu veux vraiment t'attaquer à ce problème, je te conseille d'essayer de faire tourner un serveur en local et de t'y connecter. Puis, d'ajouter un argument facultatif aux fonctions historiques, ventes et achats afin de ne pas récupérer tout l'historique ou tous les achats/ventes mais les n derniers historiques ou n premiers achats/ventes. Pour seulement enfin attaquer le problème du cache de la fonction historique. Il vaut mieux créer un nouveau pull request sur ce sujet. |
J'ai ajouté un code d'erreur dans le cas où un client fait une requète de bourse alors que la partie est finie (__notEnd())
Cependant ce code d'erreur fait un appel à fin() à chaque requète de bourse donc celà doublerait le nombre de requète au serveur pendant une partie (risque de problèmes s'il y a trop de requète au serveur).
C'est pour celà que j'ai instauré un compteur de temps local au client, afin que fin() ne fasse plus de requète au serveur, mais retourne simplement la valeur du compteur local tant que la partie n'est pas finie
Les deux erreurs possibles de désynchronisation des timers entre client/serveur ne posent pas de problème:
-Si le client est en avance, alors son timer finira avant celui du serveur et donc il y aura des requètes au serveur pendant les dernières millisecondes de la partie qui renverra le temps réel.
-Si le client est en retard, le client fera des requètes au serveur que le serveur rejettera car la partie est finie.