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






Установка флага STREAM_CLIENT_PERSISTENT при создании потока предотвращает отключение соединения. Внутри флаг заставляет stream_socket_client() вызывать pfsockopen() (док) вместо fsockopen() (док).
Сохранение соединения ограничено серверным процессом, на котором было открыто соединение. Когда ваш скрипт завершается и вы вызываете его снова, может не быть гарантии, что тот же процесс обработает ваш запрос - в этом случае будет открыто другое соединение. Установить соединение в $_SESSION для совместного использования не получится.
Может быть ... не знаю, как это сделать прямо сейчас, но может разобраться в этом
Следует ли вызывать fclose () в сокете при использовании STREAM_CLIENT_PERSISTENT?
Могли бы вы использовать пул серверных процессов как дешевый способ создания «своего рода» пула соединений? В терминах «Пусть будет одно соединение на процесс, и какой процесс запускает ваш скрипт, станет неактуальным»?