alexjet73
@alexjet73

Как остановить ratchet из php?

Стандартный пример с оф сайта ratchet запускает вебсокет после запуска скрипта php. Скрипт естественно как бы подвисает и вебсокет становится доступным.
Есть ли возможность из такого состояния остановить сервер ratchet посредством запуска другого php скрипта? Сейчас получается остановить только перезагрузкой php из ssh.
Возможно ли вообще такое реализовать в ratchet или перезагрузка php единственный метод остановить сервер ratchet?
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
nowm
@nowm
Можно это сделать двумя способами:

  1. Доработать PHP-код, чтобы он реагировал на сигналы, переданные через вебсокет. Например, если ему послать команду «stop», то он должен останавливаться и, соответственно, процесс завершается, освобождая TTY или тот скрипт, который запускал этот вебсокет.
  2. Скрипт с вебсокетом можно запускать в фоновом режиме, а потом, если нужно его завершить, просто убивать процесс по его PID. Чтобы запустить скрипт в фоновом режиме, нужно добавить & в конце команды. Для примера: php bin/chat-server.php &


Судя по вашей терминологии («перезагрузка php») вы из скрипта PHP вызываете команду php bin/chat-server.php, а сам этот скрипт вызывается с помощью HTTP-запроса из браузера. В этом случае имеется ввиду перезагрузка PHP-FPM, так? Если так, то самое простое решение проблемы с подвисанием скрипта — это способ 2.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы