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

Discussion :

Requete http / Connexion socket / Timeout

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut Requete http / Connexion socket / Timeout
    Bonjour à tous,

    J'ai imaginé une séquence de connexion qui répond à mon besoin fonctionnel.
    Problème, je ne sais pas si c'est réalisable...

    Voici la séquence :
    1. Un browser se connecte à mon serveur http
    2. le serveur ouvre une connexion socket vers une autre machine (pas un serveur http)
    3. cette machine renvoie un acquitement au serveur (forme à définir)
    4. si la machine ne répond pas au bout d'un timeout, le serveur http redirige le browser vers une autre page web.


    Mon problème se situe côté serveur. Est-il possible d'implémenter cela ? (p.ex en php). Comment gérer le timeout entre la requete http et la réponse qui dépend de la présence de la 3eme machine ?

    N'hésitez pas à me demander des clarifications!

    Merci d'avance pour votre aide.

    ++

  2. #2
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    Salut,

    c'est tout à fait possible en PHP, grâce aux fonctions 'socket' de cette dernière.
    Dans le cas le plus simple, tu peux simplement tester qu'un serveur autorise une connexion sur un port donné ; le fait d'accepter la connexion équivaudra à un acquittement.
    Attention à l'hébergement de ce script: certains hébergeurs (typiquement les hébergeurs gratuits) n'autorisent pas forcément l'emploi de telles fonctionnalités.

    Pour t'inspirer: cet exemple tiré de cette discussion:
    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
    <?
    function chkServer($hostip, $port) {   
      // attempt to connect  
      if (!$x = @fsockopen($hostip, $port, $errno, $errstr, 5 /*délai*/)) {
       echo "Le serveur est offline"; 
      } 
      else { 
       echo "Le serveur est online"; 
       if ($x) { 
        @fclose($x); //close connection 
       } 
      }  
    } 
    ?>

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    [*]Le simple fait d'ouvrir la connexion ne constitue pas pour moi un acquitement, il me faut un retour explicite de la machine distante (genre réponse socket ou mieux appel d'un webServices de mon serveur)

    la machine distante peut te repondre via les codes classique à savoir 404 non trouver, 200 page ou session valide.
    [*]La machine distante peut mettre quelques secondes à répondre, donc la réponse à la requete http initiale risque d'etre longue. Le browser ne va-t-il pas "timeouter" ?

    ce n'est pas ton browser qui fait le timeout mais ton serveur par défaut la config est de 30s

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    Hello,

    Drôle de manière de répondre que d'éditer mon post . J'ai failli ne pas voir tes réponses Vil'Coyote.
    Mis bref merci quand même, et revenons à nos moutons!

    Ainsi donc le timeout vient du serveur, et il est de 30s par défaut.
    • Est-il possible de définir un timeout spécifique pour une page ?
    • Au bout du temps imparti, peut-on effectuer une action, comme par exemple une redirection ?
    • N'est-il pas possible de gérer le timeout sur la page tout en empêchant le timeout du serveur? (pour pouvoir gérer l'action à la fin du timeout)


    Merci encore

    Bonne journée

    ++

  5. #5
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    haha désolé, j'ai fait mon boulet de compétition Editer au lieu de répondre quel con

    Est-il possible de définir un timeout spécifique pour une page
    en principe non c'est la même pour toutes les pages.

    Au bout du temps imparti, peut-on effectuer une action, comme par exemple une redirection ?
    j'aurais tendance à dire non.

    N'est-il pas possible de gérer le timeout sur la page tout en empêchant le timeout du serveur? (pour pouvoir gérer l'action à la fin du timeout)
    cela ne s'appel plus un timeout mais une redirection

    je pense que pour plus d'option et de spécificité tu devrais regarder au socket ou à curl.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    Ok, merci pour toutes ses informations.

    Je vais aller sonder du côté du forum réseaux, car ma demande est effectivement assez spécifique...

    ++

  7. #7
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par Harry_Tauper Voir le message
    Ainsi donc le timeout vient du serveur, et il est de 30s par défaut.
    si tu réduit le timeout du coté du client, ça devrait le prendre en compte, non ?

Discussions similaires

  1. Java 7 et socket timeout pendant les connexions SSL
    Par sneb5757 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 04/07/2013, 14h19
  2. Envoyer une requete http avec des sockets
    Par DavidleVrai dans le forum C++
    Réponses: 5
    Dernier message: 20/06/2012, 18h12
  3. Requete http / Connexion socket / Timeout
    Par Harry_Tauper dans le forum Développement
    Réponses: 0
    Dernier message: 14/10/2009, 11h06
  4. SDL_Net Socket et requete HTTP
    Par Topeur dans le forum C
    Réponses: 3
    Dernier message: 27/08/2008, 15h49

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