Как заставить php-сервер взаимодействовать с веб-интерфейсом HTML? - PullRequest
1 голос
/ 09 апреля 2011

Это самый НАУЧНЫЙ вопрос из всех, которые я когда-либо делал, я вижу, что это делается так часто.

Я хочу, чтобы страница PHP, которая постоянно работала в фоновом режиме (бэкэнд), периодически запрашивала интерфейс с обновленными данными.ДА, это то, как я хочу это сделать.

Но единственный способ, которым я знаю о запросе страницы, - это воссоздать этот php с помощью XHR - так что я бы сделал XHR "index.php? Data"= newdata ", но это создаст новый процесс на стороне сервера.Что мне делать?

(Пожалуйста, попросите дополнительную информацию или поправьте меня, если есть лучший способ сделать это)

Ответы [ 3 ]

2 голосов
/ 09 апреля 2011

Еще один способ сделать это - создать мост из настроек Apache и Node. Если вы прочитаете руководства по Node, вы увидите, что он:

  • Предназначен для больших нагрузоксеть
  • Создает новые потоки только тогда, когда это необходимо для выполнения задач блокировки, таких как ввод / вывод
  • Чрезвычайно прост в использовании, на основе Google V8 (Javascript Engine)
  • Может обрабатыватьтысячи одновременных подключений

Учитывая вышесказанное, я планирую создать базу данных для вашего PHP-приложения и создать 2 подключения к этому,

  • Используется подключениев приложении PHP
  • Соединение, используемое в Node.

Сторона узла будет простой:

  • Создать простой сервер сокетов (20 ~линии)
  • Создание массива
  • Прослушивание новых соединений, размещение ресурса в массив.
  • Присоединение к базе данных
  • Когда событие getвыстрелил, передай новые данные всемклиенты в массиве.

Все клиенты будут получать данные в одно и то же время, это должно быть стабильно, это очень легкое решение, так как 1K Connections будет использовать 1 процесс с несколькими I/ O Threads, используемый оперативный памяти будет около 8 ~ МБ

Ваш первый шаг должен был бы настроить node.js на вашем сервере, если вы гуглите вокруг, вы сможете найти, как это сделать,простой способ под Ubuntu сделать:

apt-get install nodejs

вы должны прочитать следующие ресурсы:

для получения дополнительной технической помощи вам следует подключиться к # node.js Сервер IRC на freenode.net, эти парни действительно помогут вам!Надеюсь, это поможет.

2 голосов
/ 09 апреля 2011

Это отличный вопрос / ответ на вопрос:

Использование кометы с PHP?

В результате вы можете сделать это с помощью PHP ...

1 голос
/ 09 апреля 2011

COMET может быть способом пойти;однако наличие окончательной HTML-страницы и выполнение AJAX-запросов на получение обновлений является обычным и более надежным способом сделать это.Я бы исследовал способы реализации подхода на основе Ajax, оптимизированного для скорости.

Вы говорите, что выполняете сложные вычисления, которые вам придется повторять для каждого запроса при переходе на Ajax.Вы можете помочь этому, например, используя интеллектуальное кэширование.Если вы записываете результаты того, что вы делаете в виде данных в формате JSON, в текстовый файл, вы можете извлечь их практически без затрат.

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