PHP запустить фоновую задачу, а затем уведомить нужного клиента

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

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

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

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

2

Решение

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

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

Например, в вашей базе данных есть строка с именем NotificationPop и если там есть значение, вы можете подсказать пользователю в качестве примера.

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

0

Другие решения

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

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

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

0

По вопросам рекламы [email protected]