Удаленное взаимодействие с консольным приложением php

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

Например:

  • Клиент делает запрос из браузера на вход в свою учетную запись
  • Запрос перенаправляется в консольное приложение
  • Консольное приложение ожидает, пока пользователь не введет свои учетные данные и не отправит их.
  • После того, как пользователь вошел в систему, консольное приложение по-прежнему работает с тем же экземпляром и ожидает команд от клиента.

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

вам нужно будет немного расширить область, возможно, она будет закрыта как широкая.

user10051234 04.03.2019 02:30

PHP не предназначен для такой задачи. Будет сложно реализовать серверное приложение, обрабатывающее несколько клиентов, однако на самом деле это не невозможно. Что такое операционная система?

Quasimodo's clone 04.03.2019 02:40

Предполагая сервер Linux, см. функции сокета, и чтобы иметь возможность обслуживать несколько клиентов, вы должны предварительно разветвить однопоточный процесс через pcntl_fork. Вам необходимо самостоятельно управлять несколькими дочерними процессами и даже разветвлять новые по требованию при большой нагрузке.

Quasimodo's clone 04.03.2019 02:46

Как упоминалось выше, вопрос слишком широк, чтобы ответить на него в StackOverflow. Испытайте удачу с данными подсказками и вернитесь с конкретным вопросом, когда столкнетесь с проблемой реализации.

Quasimodo's clone 04.03.2019 02:51
Рекомендация: Если это не только образовательный проект, чтобы посмотреть, как это можно сделать, вам лучше использовать узел.js, который предназначен для параллельной обработки нескольких запросов в среде, управляемой событиями.
Quasimodo's clone 04.03.2019 02:57

@Quasimodo'sclone спасибо за ваш ответ, использование сокетов может сработать. в любом случае я выбираю php, потому что я лучше знаком с языком, но теперь думаю переключиться на node.js.

True Kapo 04.03.2019 18:20

Если у вас есть выбор, вы действительно должны. Существуют также кодовые базы для C++, которые уже управляют несколькими соединениями параллельно. Я рассматриваю возможность использования этого для более крупных проектов, которые я хочу распространять как приложения с собственным кодом. Однако для написания сценариев в node.js требуется всего несколько строк кода, и вы можете прослушивать полный серверный процесс онлайн. PHP является однопоточным, и дочерними процессами необходимо управлять с нуля. Одновременно может обрабатываться только одно соединение. Вам нужно создавать дочерние процессы и передавать им запросы для их обработки, чтобы продолжить прослушивание порта с помощью основного процесса.

Quasimodo's clone 04.03.2019 23:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
42
0

Другие вопросы по теме