Как сохранить Php stream_socket в живых? - PullRequest
5 голосов
/ 28 октября 2008

У меня есть приложение Php, использующее stream_socket_client () для получения данных через tcp с внутреннего сервера, но я хотел бы сохранить соединения живыми или, что еще лучше, в пуле или что-то во избежание соединения / разъединения через голову.

Но я не гуру Php, поэтому я понятия не имею, как это сделать. И хотя я мог бы, вероятно, понять это через несколько часов, мое время, вероятно, будет лучше потрачено на то, чтобы поразмыслить всем, так какой совет?

1 Ответ

5 голосов
/ 28 октября 2008

Установка флага STREAM_CLIENT_PERSISTENT при создании потока предотвращает отключение соединения. Внутри флаг делает stream_socket_client() вызов pfsockopen() ( документ ) вместо fsockopen() ( документ ).

Постоянство соединения ограничено процессом сервера, на котором было открыто соединение. Когда ваш сценарий завершается и вы вызываете его снова, может не быть гарантии, что тот же процесс обработает ваш запрос - в этом случае будет открыто другое соединение. Помещение соединения в $_SESSION для совместного использования не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...