IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

gérer les ouvertures de port par un browser


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut gérer les ouvertures de port par un browser
    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

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu fait comme n'importe quel site web pour suivre ses client, tu utilise des cookies ou de l'url rewirting. Et certainement pas te baser sur les socket du client, il va les ouvrir et les fermer joyeusement comme bon lui semble. Le RFC http ne couvre d'ailleurs pas ces détails d'implémentation. En http, on considère simplement chaque requete comme indépendante, peut importe d'ou elle vient.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    au moins je sais que je dois plus chercher du coté des RFC ...

    par contre, les cookies, j'aimerais éviter

    et comment l'URL rewriting peut me servir ?

    vu que ca sert juste a renommer l'adresse ....

    ou alors j'ai raté un truc

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben si tu veux pas stocker l'information dans les cookie, il te reste plus que l'url pour stocker l'information de suivi. Tu modifie tes url pour y ajouter de l'information supplémentaire que ton serveur utilise pour faire le lien entre les requetes d'un même client.

    Note: pourquoi réinventer la roue et ne pas utiliser un serveur web déjà existant?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    c'est pour mon travail de fin d'étude

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    je crois que j'ai trouvé

    mon serveur doit envoyé un ETag dans l'entete

    et le browser me renvoi un if-none-match avec la meme valeur que le ETag

    je devrai pouvoir gerer un truc avec ca

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    le ETag est spécifique pour chaque page, ne résoudra pas ton problème, et est destiné à savoir si la page a été modifiée par rapport au tag la dernière fois envoyée par le serveur.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    en effet ca marche pas

    le browser me renvoi bien un if-none-matche quand je reste sur le meme port mais des qu'il en ouvre un autre, il ne me l'envoi plus

    chui deg, 3 jours a réadapter mon code pour rien

    et je peux pas passer par un server web deja existant vu qu'ils sont écrit en J2EE, moi je fait du J2SE et j'ai pas le temps de me mettre au J2EE maintenant, je dois finir mon TFE pour juin

    me reste plus que le rewriting
    quand le browser ouvre un autre port, c'est pour réclamer un image
    c'est une balise du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="image/test.png" alt="image"/>
    comment je peux modifier quelques chose ?

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    en java entreprise c'est réécrit comme çà, si on utilise pas les cookies:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="image/test.png;SESSIONID=blablabla" alt="image"/>
    franchement, tu va perdre plus de temps à réinventer la roue en faisant un serveur à toi plutot que de faire un bete servlet et quelques pages web type jsp pour ton affichage :/

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    et je suppose que c'est impossible de mélanger des servlet, du jsp et du j2se ?

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    le J2EE c'est du J2SE avec une série d'apis supplémentaire et quelques contraintes en plus (packager l'applicaiton dans un WAR, éviter de créer des threads si possible, éviter l'utilisation des packages swing)

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    j'ai un peu regardé la FAQ du J2EE .... ca m'a pas motivé

    j'ai vraiment pas le temps de me plonger la dedans (en plus faut installer d'autre programmes style Apache, Tomcat, ...)

    Il n'y aurai pas moyen de limiter la connection du browser à 1 port (tant pis pour l'efficacité) ?

    j'ai vu qu'il y a un header en HTTP : Keep-Alive (pas Connection:keep-alive)

    c'est sur celui-là je crois que je dois limiter la connection mais ca marche pas bien ...

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    t'as aucun moyen de controller ce que fait le browser.

Discussions similaires

  1. [SP2010] Gérer les droits de modification par document
    Par rigol'man dans le forum Développement Sharepoint
    Réponses: 18
    Dernier message: 10/02/2014, 09h46
  2. ouvertures de portes par carte magnétique
    Par debut36 dans le forum Débuter
    Réponses: 0
    Dernier message: 24/09/2011, 20h40
  3. Gérer les ports d'un switch HP
    Par misterbillyboy dans le forum Développement
    Réponses: 8
    Dernier message: 04/01/2008, 18h51
  4. Gérer les évènements VBA par programmation
    Par gbuxo dans le forum VBA Access
    Réponses: 14
    Dernier message: 09/05/2006, 12h13
  5. [VB6]Détecter ouverture du Port serie par autre application
    Par jbbelz dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 03/04/2006, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo