[RESOLU] Libérer une ressource sans la fermer (socket)

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 : [RESOLU] Libérer une ressource sans la fermer (socket)

Re: Libérer une ressource sans la fermer (socket)

par xTG » 11 mars 2014, 09:29

Utiliser un thread fils pour accéder à la ressource créée par le père ?
Attention tout de même, PHP n'est pas vraiment fait pour faire ce genre d'architecture.
Si tu commences à aller trop loin tu finiras débouté.
Bien penser à ce qu'il te faut comme architecture finale, et si c'est complexe plutôt préférer un serveur dans un autre langage.

Re: Libérer une ressource sans la fermer (socket)

par Mi@ow » 10 mars 2014, 23:47

Je vous remercie toutes et tous de vos tentatives d'aide, j'ai finalement pu trouver une solution fonctionnelle: http://fr.openclassrooms.com/forum/suje ... mer-socket

Re: Libérer une ressource sans la fermer (socket)

par xTG » 10 mars 2014, 19:33

Comme le socket reste ouvert à la fin de l'exécution de la page, il doit exister un moyen, non ?
Le socket reste ouvert mais est lié.

Ce que tu demandes relève un peu de la magie pour moi.
C'est similaire à une maison qui a une adresse X.
Et toi tu voudrais pouvoir y accéder depuis la ville X et depuis la ville Y.
Le seul moyen serait de faire appel aux déménageurs de l'extrême, mais à ma connaissance ils n'interviennent pas sur les sockets.

Le seul moyen est de le clore puis de le rouvrir depuis ton autre point d'accès.

Re: Libérer une ressource sans la fermer (socket)

par moogli » 10 mars 2014, 16:30

salut,

la liste des fonctions sur les chaussettes en php http://www.php.net/manual/fr/ref.sockets.php


@+

Re: Libérer une ressource sans la fermer (socket)

par Mi@ow » 10 mars 2014, 10:37

Comme le socket reste ouvert à la fin de l'exécution de la page, il doit exister un moyen, non ?

Re: Libérer une ressource sans la fermer (socket)

par xTG » 09 mars 2014, 11:12

Pour moi ce n'est pas possible.
Libérer une socket c'est clore la connexion.

Libérer une ressource sans la fermer (socket)

par Mi@ow » 07 mars 2014, 16:10

Bonjour à toutes et à tous !
ça fait un petit moment que j'ai commencé à manipuler les socket permanents (pfsockopen) et je me suis fait la remarque suivante:
Si je pouvais libérer le socket (le rendre accessible à un autre processus tout en continuant la génération de ma page) cela optimiserais l'usage réseau de mon application.
<?php
// petit exemple
 
// mon script commence par demander des informations à un serveur précis (toujours le même)
$monSocket = pfsockopen('mon.serveur.com', $monPort);
 
/*
 *  ici j'utilise le socket pour envoyer et recevoir des données
 */
 
// Je n'en ai plus besoin, mais j'ai encore des choses à faire, comme ouvrir des fichiers / calculer certaines choses / générer la page pour le client
// j'aimerai donc "libérer" le socket histoire qu'une autre page puisse l'utiliser pour se connecter à mon.serveur.com
// fclose() ne me convient pas, elle ferme le socket (le déconnecte) perdant ainsi les avantages du fait qu'il soit permanent...
 
sleep(10); // pour représenter le fait que mon script a encore des choses à faire
 
// durant ces 10 secondes, je n'utilise plus le socket et il ne peut pas être utilisé par un autre processus php =/
 
?>
Si quelqu'un sait comment s'y prendre ou a une autre idée, je l'en remercie d'avance !