Вебсокеты Eraser: различия между версиями
Материал из MajorDoMo инфо
Mixman (обсуждение | вклад) Нет описания правки |
Mixman (обсуждение | вклад) Нет описания правки |
||
Строка 36: | Строка 36: | ||
<pre> | <pre> | ||
if (preg_match('/(cycle_.+?)\.(php|py)/is', $path, $m)) { | if (preg_match('/(cycle_.+?)\.(php|py)/is', $path, $m)) { | ||
</pre><br> | </pre> | ||
488 Меняем | |||
<pre> | |||
foreach ($to_start as $title => $tm) { | |||
if ($tm <= time()) { | |||
if (!isset($is_running[$title])) { | |||
$cmd = './scripts/' . $title . '.php'; | |||
</pre> | |||
на это | |||
<pre> | |||
foreach ($to_start as $title => $tm) { | |||
if ($tm <= time()) { | |||
if (!isset($is_running[$title])) { | |||
$cmd = './scripts/' . $title . '.php'; | |||
if (!file_exists($cmd)) | |||
$cmd = './scripts/' . $title . '.py'; | |||
</pre> | |||
<br> | |||
в '''/lib/threads.php''' после | в '''/lib/threads.php''' после |
Версия от 17:19, 4 октября 2023
Уважаемый Eraser сделал для majordomo альтернативные вебсокеты.
Чтобы установить, нужно проделать следущее:
в консоли сервера (SSH)
pip install websockets
или для python3
pip3 install websockets
возможно, понадобится вначале с судо
sudo pip install websockets
или для python3
sudo pip3 install websockets
расскоменчиваем в config.php
Define('PYTHON_PATH','python'); // path to python
или
Define('PYTHON_PATH','python3'); // path to python
в cycle.php (примерно 308 строка) заменить
if ((preg_match("/^cycle_.+?\.php$/", $lib_file)))
на
if ((preg_match("/^cycle_.+?\.(php|py)$/", $lib_file)))
а так же
if (preg_match('/(cycle_.+?)\.php/is', $path, $m)) {
на
if (preg_match('/(cycle_.+?)\.(php|py)/is', $path, $m)) {
488 Меняем
foreach ($to_start as $title => $tm) { if ($tm <= time()) { if (!isset($is_running[$title])) { $cmd = './scripts/' . $title . '.php';
на это
foreach ($to_start as $title => $tm) { if ($tm <= time()) { if (!isset($is_running[$title])) { $cmd = './scripts/' . $title . '.php'; if (!file_exists($cmd)) $cmd = './scripts/' . $title . '.py';
в /lib/threads.php после
class Threads { public $phpPath = 'php';
Добавляем
public $pyPath = PYTHON_PATH;
получаем:
class Threads { public $phpPath = 'php'; public $pyPath = PYTHON_PATH;
скопировать файл /scripts/cycle_websockets.py
в папку /scripts . Даем соответствующие права (0777)
Там же папке переименовать или удалить стандартный цикл вебсокетов cycle_websockets.php