2008-10-28 7 views
4

J'ai une application PHP utilisant stream_socket_client(), pour obtenir des données via tcp à partir d'un serveur principal, mais souhaite conserver les connexions en vie ou mieux dans un pool ou quelque chose pour éviter la connexion/déconnexion.Comment conserver un php stream_socket vivant?

Mais je ne suis pas un gourou Php, donc je n'ai aucune idée de comment faire cela. Et même si je pourrais probablement le découvrir dans quelques heures, mon temps sera probablement mieux passé à choisir le cerveau de tout le monde, donc des conseils?

Répondre

4

La définition de l'indicateur STREAM_CLIENT_PERSISTENT lors de la création du flux empêche la connexion de la veille. En interne, le drapeau stream_socket_client() appelle pfsockopen() (doc) au lieu de fsockopen() (doc).

La persistance de la connexion est limitée au processus serveur sur lequel la connexion a été ouverte. Lorsque votre script se termine et que vous l'appelez à nouveau, il se peut qu'il n'y ait aucune garantie que le même processus traite votre demande - une autre connexion sera ouverte dans ce cas. Mettre la connexion dans $_SESSION pour le partager ne fonctionnera pas.

+0

Cela me rend triste ... mais merci pour l'info –

+0

Pourriez-vous utiliser le pool de processus de serveur comme un moyen pas cher dans un "genre de" connexion de mise en commun? En termes de "Qu'il y ait une connexion par processus, et quel processus gère votre script devient hors de propos."? – Tomalak

+0

Peut-être ... pas sûr comment faire cela maintenant, mais peut regarder dans –

Questions connexes