Задать вопрос
alexjet73
@alexjet73

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

Стандартный пример с оф сайта ratchet запускает вебсокет после запуска скрипта php. Скрипт естественно как бы подвисает и вебсокет становится доступным.
Есть ли возможность из такого состояния остановить сервер ratchet посредством запуска другого php скрипта? Сейчас получается остановить только перезагрузкой php из ssh.
Возможно ли вообще такое реализовать в ratchet или перезагрузка php единственный метод остановить сервер ratchet?
  • Вопрос задан
  • 165 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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