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

Bibliothèques et frameworks PHP Discussion :

[Web Service] Consommer un WebService .Net depuis PHP en asynchrone


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 21
    Par défaut [Web Service] Consommer un WebService .Net depuis PHP en asynchrone
    Bonjour,

    J'ai un site web en PHP5 chez un hébergeur et je souhaite consommer mon web service .Net que j'ai sur mon serveur de façon asynchrone.

    C'est à dire que quand un utilisateur clique sur un bouton du site par exemple, celui-ci ne doit pas être bloqué tant que le web service n'est pas terminé. Par exemple si le serveur est injoignable, l'utilisateur ne dois pas s'en rendre compte.

    J'ai déjà réussi à appeler mon web service de façon synchrone, mais je ne trouve pas comment faire pour l'appeler de façon asynchrone.

    serviceTest.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class serviceTest {
    	var $wsdl = "http://****/ServiceTest.asmx?wsdl";
    	var $client = null;
     
    	// class constructor
            function serviceTest() {
    		$this->client = new SoapClient($this->wsdl);
    	}
     
    	function consumeFuntion($param1, $param2) {
    		$this->client->Function(array('param1' => $param1, 'param2' => $param2));
    	}
    }
    test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    /* Code du WebService ----------------------------------------------- */
    	  require('serviceTest.php');
    	  $service = new serviceTest();
    /* Fin code du WebService -------------------------------------------- */
     
    // Traitement divers en PHP
     
    /* Code du WebService ----------------------------------------------- */
    	  $service->consumeFunction($param1, $param2);
    /* Fin code du WebService -------------------------------------------- */
    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    pour avoir des actions asynchrones tu peux regarder du coté d'AJAX :
    http://ajax.developpez.com/

  3. #3
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 21
    Par défaut
    Oui c'est ce que l'on m'a conseillé (SpaceFrog) via le chat mais je ne vois pas du tout comment faire. Je ne suis pas du tout spécialiste en développement Web. En effet d'après ce que j'ai compris il faut utiliser JavaScript pour utiliser AJAX mais pour moi JavaScript c'est coté client alors que là mes données sont dans du code PHP.

    En fait le site PHP ce n'est pas moi qui l'ai crée, moi je n'ai fais qu'insérer du code PHP dans du code PHP pour appeler un webservice.

    Si vous pouvez m'éclairer un peu plus sur la méthode à utiliser.

    Merci.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    du coté du serveur, regarde si tu peux utiliser l'extension PCTNL
    http://php.net/intro.pcntl

    sinon il y a une solution avec une tâche cron : la page Web mets l'action à faire dans une base de données. et la tâche cron consulte fréquemment la base de données pour voir s'il y a une opération asynchrone à faire

  5. #5
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 21
    Par défaut
    Je ne crois pas que c'est autorisé. En tout cas j'ai rien vu dans le php_info() du serveur. Par contre je me sert de WAMP pour travailler en local et j'ai vu une extension qui est désactivé par défaut et qui bien évidement n'est pas activé sur le serveur, c'est php_threads. J'ai regardé vite fait sur google mais ça n'a pas l'air super documenté et il semblerait que ça ne fontionne pas sur windows.
    A moins de trouver autre chose je pense que c'est mort?

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    Citation Envoyé par Joooooon Voir le message
    A moins de trouver autre chose je pense que c'est mort?
    une toute toute toute dernière solution serait que le service soit asynchrone en lui même. c'est à dire qu'il faudrait 3 méthodes : une pour lancer le traitement, une pour tester si le traitement est terminé et une dernière pour récupérer le résultat

    si ce n'est pas non plus possible, il ne te restera plus qu'à demander à la personne qui te demande ça d'acheter un serveur plus puissant pour que le traitement se fasse plus vite

Discussions similaires

  1. Consommer un webservice java depuis PHP avec un wsdl
    Par crazymad dans le forum Services Web
    Réponses: 1
    Dernier message: 04/05/2011, 17h29
  2. Consommer les web services de JasperServer avec .NET (C#)
    Par maverick911 dans le forum Jasper
    Réponses: 0
    Dernier message: 05/05/2010, 10h52
  3. Réponses: 5
    Dernier message: 17/01/2008, 13h18
  4. [Web Service][SOAP] Importer des contacts depuis hotmail, etc.
    Par wenijah dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 03/10/2007, 13h58
  5. [Web Service][SOAP] NuSOAP Webservice Sur tous serveurs ?
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/01/2006, 14h59

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