2015-10-06 8 views
2

Я попробовал Google перед тем, как спросить, но я не могу понять, может ли быть достигнуто с помощью php в следующем сценарии: - Запустить скрипт, который немедленно возвращается пользователю. Задача состоит в том, чтобы запустить длинную задачу в фоновом режиме. . Уведомлять о правильном браузере при завершении работы, даже если пользователь просматривал другие страницы в одном домене/веб-приложении.PHP запускает фоновое задание, а затем уведомляет о правильном клиенте

Могу ли я сделать это с помощью php? Могу ли я сделать с некоторыми фреймворками, такими как node.js? или с такой техникой, как длинный опрос (я не знаю много об этом). Or ....

Я ищу кого-то, кто может поставить меня на правильный путь.

Большое спасибо

+0

Пожалуйста, не забудьте выбрать ответ (если он окажется полезным) –

ответ

0

Да, это возможно.

Вы можете сделать это с помощью комбинации jQuery/JavaScript и PHP.

Если у вас есть строка в вашей базе данных с именем NotificationPop и ЕСЛИ там есть значение, вы можете пригласить пользователя в качестве примера.

Во всяком случае, это довольно широкий вопрос. Просто попробуйте и потерпите неудачу, если вы столкнетесь с какими-либо проблемами, SO будет рад помочь вам.

+0

Спасибо Kristian интересной точке зрения. NotificationPop связан с user_id, который отправляет задание. но таким образом, если я не нахожусь в состоянии ожидания, я должен выполнить запрос ajax на любой странице каждые XX секунд. возможно, у меня проблема с производительностью? –

+0

Не совсем, Javascript запускается на стороне клиента, и любой достойный сервер сможет обрабатывать запрос от любого пользователя каждые 10-15 секунд на php или около того. –

0

Думаю, вам стоит заглянуть в веб-узлы. Это то, что стоит за живыми push-уведомлениями или чатами. В принципе, когда что-то происходит (или процесс завершается) на стороне сервера, сервер «свяжется» с правильным пользователем (даже если он изменил веб-страницу, но все еще находится в том же домене). Содержимое сообщения сервера полностью зависит от вас. Вы можете делать все, что хотите.
Больше информации здесь (попробуйте демо-приложение):
https://www.websocket.org/index.html

Также читайте эту http://www.html5rocks.com/en/tutorials/websockets/basics/, чтобы понять, почему вы не должны использовать периодический опрос или долго опроса.

P.s. Обратите внимание, что для использования веб-сайтов вам нужен сервер websocket, работающий на вашем сервере. Это невозможно (насколько мне известно) на общем хостинге, но вам нужен VPS (виртуальный частный сервер).

+0

Спасибо, Игорь, но это полное решение кросс-броузера? –

+0

Да, конечно. В основном, это то, что произошло, когда вы получили мой ответ здесь, на SO. Вы увидели красную иконку в меню (вверху страницы) с уведомлением о новом ответе на свой вопрос. Это websocket magic;) –

+0

Кроме того, многие онлайн-многопользовательские веб-игры используют websockets. Websockets - это «более профессиональное» решение, постоянный опрос ajax - «трюк/работа». Но они оба полезны в зависимости от контекста (= насколько велик ваш проект) –