Рекомендуемый способ, позволяющий PHP общаться с процессом на одном сервере

0

Я написал коммуникационное программное обеспечение в C++ (называемое "talkto"). Теперь я хочу получить доступ к этой программе через веб-сайт в php. Проблема в том, что веб-код должен взаимодействовать с программой. Поэтому запустите программу и посмотрите результат после остановки программы. Например, вы можете запустить мой процесс с помощью параметра:

talkto.exe enum receiver

программа будет транслировать пакет udp и ждать ответов. К сожалению, это блокирует скрипт PHP до выхода программы. Кроме того, talkto установит для получателя вид сеанса, который действителен только во время работы. После части перечисления получатель может изменить свое состояние и объявить об этом. У меня мало знаний о PHP. Мне нужен веб-сайт, показывающий получателя и обновление, если состояние меняется. Я получил полный контроль над talkto, поэтому я могу использовать stdio, сокеты или трубки. Веб-сервер - это Apache. Программа будет/должна работать на одном компьютере. Безопасность - проблема.

  • 0
    Я думаю, что ключ в том, что блоки PHP , все, что блоки не могут взаимодействовать.
Теги:

1 ответ

1
Лучший ответ

Вы считали, что используете Message Queue (я думаю, что что-либо с MQ-суффиксом, ActiveMQ, RabbitMQ, ZeroMQ), ваши 2 различных процесса могут связываться через сообщения, проходящие через MQ

Другим вариантом для связывания двух процессов является использование Redis (Pub/Sub)

О более поздней проблеме, это характер PHP для блокировки кода. Существует один простой способ обойти это, чтобы использовать внешнюю очередь для PHP (я использую этот https://github.com/chrisboulton/php-resque)

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

  • 0
    Я посмотрел глубже в ZeroMQ. Я думаю, что это сделает работу. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню