Problème de socket persistante avec plusieurs scripts

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de socket persistante avec plusieurs scripts

par Sung » 08 janv. 2007, 14:06

Euh... ouais un petit peu, chaque connexion c'est un joueur en simplifié

par fab » 07 janv. 2007, 23:56

Et sinon tu as vraiment besoin d'une connexion persistante?

par Ajoloca » 07 janv. 2007, 21:46

Bonsoir,

Je ne suis pas sur que ça fonctionne mais j'ai un vague souvenir d'avoir lu qu'on pouvait utiliser les connexions persistantes en mode CGI.
À vérifier, sans aucune garantie.

par Invité » 07 janv. 2007, 16:07

Merci bien pour ta reponse Xenon_54, on vera si cela marche :)

par inzemix » 07 janv. 2007, 10:55

merci pour tes réponses!

Je testerai ça en début de semaine prochaine!
Je pense qu'on va devoir se tourner sur un client contenu dans une seule page et utilisant la technologie AJAX.

par Xenon_54 » 06 janv. 2007, 21:59

Peut-être via cette extension: http://www.php.net/apc
Cependant, je n'ai jamais testé et je ne sais même pas si c'est concrètement possible.

De plus, PHP n'est pas Java. Il n'y a pas de machine virtuelle chargée en mémoire permettant l'échange de données ou le stockage de ce type de variable en mémoire globale.

par inzemix » 06 janv. 2007, 21:54

Le socket est relié au processus Apache et non à la session du client.

Tu peux ouvrir un socket persistent sur une page, voir le visiteur changer de page et le socker resté ouvert et exécuter des requêtes qui prennent plus de temps que le temps de visite normal d'un visiteur.

J'ose dire que c'est la même chose que mysql_pconnect(), la connexion est reliées au processus Apache, pas la session du client.
Merci bien pour ta réponse!

Existe-t-il un moyen d'utiliser une et même socket pour une session sur plusieurs pages? :?:

par Xenon_54 » 06 janv. 2007, 21:41

Le socket est relié au processus Apache et non à la session du client.

Tu peux ouvrir un socket persistent sur une page, voir le visiteur changer de page et le socker resté ouvert et exécuter des requêtes qui prennent plus de temps que le temps de visite normal d'un visiteur.

J'ose dire que c'est la même chose que mysql_pconnect(), la connexion est reliées au processus Apache, pas la session du client.

par Sung » 06 janv. 2007, 13:09

Bon je boss avec inzemix , c'est des sockets persistantes mais si elle se ferme quand mme à quoi sa sert ?

par inzemix » 06 janv. 2007, 12:06

désolé, j'ai oublié de me loggué pour le message précédent et du coup, je ne peux pas éditer...
Salut,
je n'ai pas testé mais je doute que tu puisses mettre une ressource stream en session.
Il te faut réouvrir ta connexion.
-> ceci ne m'est pas possible, le serveur sur lequel je me connecte interpréterait cela comme plusieurs clients! :cry:

par Invité » 06 janv. 2007, 12:04

le print_r($_SESSION) te dis quoi dans le premier fichier concernant $_SESSION['serv']
Voilà ce que me dit le print_r($_SESSION) après l'interprétation du premier fichier :

Code : Tout sélectionner

['serv'] => Resource id #4
Et lors du second :

Code : Tout sélectionner

['serv'] => 0
Je fais en parallèle des recherches sur internet mais ça ne donne pas grand chose, j'ai juste une piste :
http://www.php.net/manual/fr/function.pfsockopen.php
Sur le troisième commentaire, un développeur fait allusion à SAPI ou ISAPI. Cependant, cet indice ne me parle pas beaucoup plus!

Merci à tout ceux qui ont pris le temps de me lire! :wink:

par mojorisin » 05 janv. 2007, 21:58

Salut,
je n'ai pas testé mais je doute que tu puisses mettre une ressource stream en session.
Il te faut réouvrir ta connexion.

par fab » 05 janv. 2007, 21:48

le print_r($_SESSION) te dis quoi dans le premier fichier concernant $_SESSION['serv']

par inzemix » 05 janv. 2007, 21:34

vraiment personne pour un coup de main ou quelques indications?! :oops:

Problème de socket persistante avec plusieurs scripts

par inzemix » 04 janv. 2007, 17:16

Bonjour,

Je souhaite réaliser une application en php qui se connecte à un serveur de jeu.

Pour celà, je crée une première page qui se connecte au serveur de la sorte :
?php
        session_start();
        $_SESSION['port'] = 9999;
        $_SESSION['ip'] = "localhost";

        //connection au serveur.
        $_SESSION['serv']=pfsockopen($_SESSION['ip'],$_SESSION['port']);

        fwrite($_SESSION['serv'],"listeParties/?;");
        $res=fread($_SESSION['serv'],1024);
        echo "res : $res";
        print('<a href="test.php"> passer à la 2ème page </a><br><br>');

        echo "session :";
        print_r($_SESSION);
?>
La connexion se déroule bien et mon serveur me renvoit bien le message escompté.
Maintenant, je souhaite pouvoir utiliser cette connexion depuis une autre page : test.php dont voici le code :
?php
        session_start();
        echo "session : ";
        print_r($_SESSION);

        fwrite($_SESSION['serv'],"listeParties/?;");
        $res=fread($_SESSION['serv'],1024);

        echo $res;
?>
Cependant, durant l'éxécution de ce script, les erreurs suivantes apparaissent :

Code : Tout sélectionner

Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/tut/test.php on line 6 Warning: fread(): supplied argument is not a valid stream resource in /var/www/tut/test.php on line 7
De plus, print_r($_SESSION) me dit que la variable 'serv' contient 0 en non plus un identifiant de ressource comme sur la page précédente...

Petite précision : je ne peux pas ouvrir plusieurs connexion, car celà serait assimilé à plusieurs clients du côté de mon serveur!

Quelqu'un a-t-il une idée? :D

Merci d'avance à tout ceux qui auront le courage de me répondre!