поддерживать сессию / связь между PHP и Java-приложением - PullRequest
0 голосов
/ 29 октября 2010

A) Если у меня есть Java-приложение, которое запускается и ожидает подключения к сокету на указанном порту.Есть ли способ, которым я мог бы поддерживать соединение сеанса в php после того, как пользователь подтвердил, то есть постоянное соединение?

B) Я имею в виду, я пытаюсь понять, как это делается с mysql и php.Как mysql или php узнают, каким было последнее открытое соединение, так что вам не нужно делать mysql_connect после?

C) Есть ли какое-то преимущество в открытии и закрытии соединения при каждой загрузке страницы или лучшеподдерживать постоянную связь?

D) Если последнее верно в C, вы можете описать или привести пример того, как это будет достигнуто при подключении php -> Java

1 Ответ

1 голос
/ 29 октября 2010

A) Нет, нет.

B) mysql_pconnect () работает из-за взаимодействия веб-сервера и php.Веб-сервер обычно запускает несколько дочерних процессов, которые обрабатывают запрос.Каждый дочерний процесс может обрабатывать только один запрос за раз, и параллелизм достигается путем отправки параллельных запросов различным процессам.

Каждый такой процесс имеет свой собственный экземпляр PHP, который повторно используется для каждого нового запроса.Это позволяет модулям PHP поддерживать некоторое состояние между запросами.Вы не можете сделать это из обычного PHP-кода, это должно быть расширение, написанное на C. Однако нет никаких гарантий по этому поводу.Процесс может быть остановлен и перезапущен в любое время.

Sidenote: Конечно, не все веб-серверы используют такие процессы.Вместо этого достаточно использовать многопоточный подход.Это не работает на PHP, так как не все расширения потокобезопасны.Поэтому PHP всегда должен работать на веб-сервере, который создает дочерние процессы для обработки запросов.Этот режим (MPM) в Apache называется prefork.

C) Как я уже сказал, у вас нет выбора.В быстрой сети издержки на открытие нового соединения довольно малы.

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