Вот идея, хотя она может не очень хорошо масштабироваться:
Основная идея заключается в том, что вы хотите каким-то образом прокси подключать эти необработанные соединения сокетов, когда соединение с бэкэнд-системой сохраняется.
Итак, представьте, что у вас есть программа, которая создает удаленное соединение с вашей серверной системой, а затем создает сокет домена (fifo) в каком-то специальном каталоге на сервере переднего плана и называет этот сокет домена после session_id пользователя. Этот процесс просто передает данные между двумя соединениями.
Я не совсем уверен, как бы я разработал такой прокси. Возможно, вы могли бы написать демон на PHP, который мог бы справиться с этим (подсказка: вы могли бы взглянуть на некоторые фреймворки для демонов php, такие как nanoserv или System_Deamon) - вряд ли они будут очень эффективными - но могут работать нормально. Если у вас очень много соединений, вы можете использовать что-то с многопоточностью, чтобы избежать fork () для каждого соединения.
Но основная идея заключается в том, что для каждого открытого соединения с серверной системой существует некоторый процесс, который предоставляет сокет локального домена, с которым могут взаимодействовать ваши интерфейсные PHP-скрипты. Эти интерфейсные процессы, связанные с веб-интерфейсом, знают , который сокет, потому что он назван в честь текущего session_id.
Как и когда вы настраиваете / разрываете эти соединения, вероятно, очень зависит от ваших обстоятельств. Вам нужен какой-то способ для связанных с сетью процессов запрашивать сокет (в этот момент прокси-демон выполняет настройку / рукопожатие, открывает сокет локального домена и начинает прокси) и некоторая стратегия для их закрытия.