je suis en train de creer un serveur web en J2SE
je sais que ce n'est pas l'idéal mais j'aime les défis
j'ai donc un objet Serveur (extends Thread) qui attend les connection venant du port 80 (http)
pour chaque connection il créé un objet Client (extends Thread) qui va attendre les requetes du browser
j'ai donc aussi un objet Header qui va creer le header http (pour communiquer avec le browser) et un objet HTML qui génere mes pages
une fois le header et la page créé, je n'ai plus qu'a envoyé le tout via le socket créé par mon Serveur et le tour est joué
mon programme est en fait un jeu du style que l'on retrouve beaucoup en PHP
le joueur doit donc se logger
mon objet Client a donc un objet Joueur en private
via un formulaire que je génère en HTML et que mon objet Client récupère puis analyse, il y a donc moyen de se logger et de jouer
ca, c'est pour la partie qui fonctionne ....
le problème vient du fait que dès que le browser a une image à charger, il ouvre un autre port pour aller plus vite et continuer à charger le reste de la page
jusque là, pas trop de problème en fait ...
là ou ca coince, c'est que le browser fait les requêtes suivantes soit sur le premier port ou sur le deuxième (ou le troisième, il ouvre 3 ports max)
et évidement, il n'y a pas de joueur loggé sur les nouveaux ports ... donc toutes les requêtes sont rejetées ....
d'où le titre du post (on y est finalement arrivé, merci pour les courageux qui ont lu jusqu'au bout )
je suppose que la réponse se trouve quelque part dans les RFC HTTP mais j'ai pas réussi à trouver
donc est-ce qu'il y a moyen de dire au browser : tu n'ouvres qu'un et seul port (pas l'idéal)
ou
gérer une sorte d'identifiant unique que le browser m'enverrai pour me dire :
j'ouvre une nouvelle connection, mais c'est pour ce joueur là
ou
une autre solution efficace
voilà
merci de me trouver une solution svp parce que ca fait une semaine que je galère sur ce problème et je peux pas avancer dans mon code tant que je n'ai pas résolu ce problème
Partager