Бэкэнд-клиент и PHP: Sokets, Stream, TCP / UDP? - PullRequest
0 голосов
/ 29 марта 2012

Короткая версия: Я хочу подключить клиент к PHP-серверу, но у меня есть ограничение на 10 одновременно работающих PHP-скриптов.

Вопрос: Каков наилучший способ подключения клиента с помощью PHP-скрипта, не превышая ограничения?

Длинная версия:
Мои предыдущие вопросы показывают, что я на самом деле хочу, но вот снова:
Я хочу разработать веб-чат с использованием Java-апплета на стороне клиента и PHP в качестве внутреннего сервера.При нормальных обстоятельствах я бы не стал задавать вопрос, подобный этому, просто воспользуюсь первым, что Google выскакивает в моем поиске.но сейчас я нахожусь не в обычных обстоятельствах, а в ограничениях: использование сервера, как на моем хостинге, является хостингом с общей учетной записью, и 10 процессов Entry (так называемое количество PHP-скриптов, работающих одновременно). Мне нужно сделатьсервер для моего чата, помня об этом, и снижая производительность настолько, насколько я могу.

Я разработал соединение клиент / сервер с использованием TCP в Delphi, но это было давно, и я многое о нем забыл.И теперь я пытаюсь вспомнить его, я понимаю, что мало что знал об этом.

Итак, я получил несколько вопросов, основанных на моих исследованиях:

Что такое сокет?
Я действительно изумлялся, но не нашел по-настоящему четкого ответа на это.Это стандартный способ общения двух программ друг с другом, верно?и вот где, возможно, одно из моих неправильных знаний: ...

Является ли протокол TCP / UDP сокетами?
Я даже не знаю, как объяснить этот мой вопрос ...

Что такое поток точно?
Что я знаю из своих знаний C ++, так это способность открывать файлы в двоичном виде и читать из него из любой точки.Я могу ошибаться, потому что мои знания C ++ тоже старые.

Также я читал о PHP-сокетах и ​​обнаружил, что он способен прослушивать порт с socket_create_listen , но myпроблема в том, что этот скрипт работает активно?как бесконечный цикл?Я спрашиваю об этом, потому что ограничение процесса 10.
А если я инициирую TCP-соединение с клиентом, сценарий снова запускается в бесконечном цикле? рассчитывает ли он на активные процессы?

Я знаю, что UDP не нуждается в активном соединении, потому что он просто отправляет его в массовом порядке и забывает о том, что завершает работу сценария, когда завершается, ноя не знаю о TCP.

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

РЕДАКТИРОВАТЬ: IЗабыли о методах GET / POST!Как я уже сказал, я планирую веб-чат, и им нужно общаться, но кроме прямого соединения есть и метод GET / POST, который скрипт быстро выполняет и завершает сценарий, но опять-таки ограничение 10 процессов, что происходит, когда 11 процессов пытаются запускаться одновременно?

Также есть ли способ ограничить одновременное выполнение процессов?или поставить в очередь и дождаться окончания остальных?

1 Ответ

1 голос
/ 29 марта 2012

Если ваш сервер ограничен только 10 одновременными потоками, это жесткое ограничение, и вы ничего не можете сделать. Что вы можете сделать, это сделать запрос как можно меньшим, и сделать так, чтобы как можно меньше вопросов решалось с помощью php. Так что вероятность параллелизма будет очень мала.

В идеале, все ваши php будут запускаться и выходить очень быстро, часто перенаправляя пользователя на статический контент (html, js, img и css файлы).

Может быть, вы можете сделать все ваше веб-приложение большим количеством html-файлов и иметь некоторый файл ajax.php для связи с сервером ...

...