Nebiros

ответов0 / помог0

Как держать Ratchet всегда в работоспособности?

1680296832
Запуская скрипт из консоли я уже наладил всё, то есть работает всё как нужно, но как только я закрою консоль то и прекратится серверная поддержка, причём если я снова открою консоль и попытаюсь запустить снова скрипт то мне напишет что порт занят, при этом он не будет работать, скрипт на сервере стандартный

$server = IoServer::factory(new HttpServer(new WsServer(new MyClass())), 8080);
$server->run();
мне нужно чтобы он был всегда в рабочем состоянии, то есть во первых при запуске/перезагрузке сервера он сразу же включался, во вторых если вдруг он перестанет работать (пока что не знаю как это проверить) то порт освободить и запустить скрипт... Подскажите как это сделать?
Fart83
ответов3 / помог3
1680296932
как вариант, для плавного рестарта сервисов используют systemd, pcntl, shell*, exec. для грубой работы можете написать "слушателя" процесса. при возникновении ошибки убивать процесс и возобновлять работу. UPD на счет Ratchet. c ним работать легко, но вот workerman будет поприятнее. с ним сервисы подобные писать легко, в том числе задачи вашего поста.
Nebirosвлепить жирный лайк
Nebiros
ответов0 / помог0
Обновлен 1680297723
Fart83,« как вариант, для плавного рестарта сервисов используют systemd, pcntl, shell*, exec. для грубой работы можете написать "слушателя" процесса. при возникновении ошибки убивать процесс и возобновлять работу.» вы имеете ввиду в кроне проверять работает ли скрипт и если нет то через exec убивать процесс и запускать? если да то можно написать как это конкретно в командах будет выглядеть? я имею виду проверить работает ли процесс и убить процесс с помощью php команды, которая как я понимаю будет запускаться в кроне... Fart83, «UPD на счет Ratchet. c ним работать легко, но вот workerman будет поприятнее. с ним сервисы подобные писать легко, в том числе задачи вашего поста.» да как бы уже то что нужно написано и вроде работает как нужно, а если быть точнее то мне всего-то был нужен был ретранслятор, от одного клиента выходит и нужным клиентам разносится...
влепить жирный лайк
Fart83
ответов3 / помог3
1680297658
Nebiros, «если да то можно написать как это конкретно в командах будет выглядеть?» на скорую руку: пробрасываете запросы (api, пингуете), нет ответа - рестарт процессов и киллтаск зависших процессов. используйте стандартный функционал для работы с сокетами. примеры есть в мануле. https://www.php.net/manual/ru/book.sockets.php
Nebirosвлепить жирный лайк
Сначала вход
A B i U S JS PHP HTML CSS SQL C C++ C# PYTHON JAVA
Для входа только имэйл или имя и апроль
Можно сменить аватар
Имэйл Ваше имя
Пароль