Вебсокеты Eraser: различия между версиями
Материал из MajorDoMo инфо
Mixman (обсуждение | вклад) Нет описания правки |
Mixman (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 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> | |||
509 | |||
<pre> | |||
//$closePattern = '/THREAD CLOSED:.+?(\.\/scripts\/cycle\_.+?\.php)/is'; | |||
$closePattern = '/THREAD CLOSED:.+?(\.\/scripts\/cycle\_.+?\.(php|py))/is'; | |||
</pre> | |||
<br> | |||
в '''/lib/threads.php''' после | в '''/lib/threads.php''' после | ||
Строка 56: | Строка 88: | ||
</pre> | </pre> | ||
в '''/modules/xray/xray.class.php.php''' 777 | |||
<pre> | |||
$title = preg_replace('/\.php$/', '', $entry); | |||
</pre> | |||
меняем | |||
<pre> | |||
$title = preg_replace('/\.(php|py)$/', '', $entry); | |||
</pre> | |||
скопировать файл [https://github.com/Anisan/majordomo/blob/ba718d7048f39ea9a22a84e04f422590795480b2/scripts/cycle_websockets.py /scripts/cycle_websockets.py] | скопировать файл [https://github.com/Anisan/majordomo/blob/ba718d7048f39ea9a22a84e04f422590795480b2/scripts/cycle_websockets.py /scripts/cycle_websockets.py] | ||
в папку /scripts . Даем соответствующие права (0777) | в папку /scripts . Даем соответствующие права (0777) | ||
Там же папке переименовать или удалить стандартный цикл вебсокетов '''cycle_websockets.php''' | Там же папке переименовать или удалить стандартный цикл вебсокетов '''cycle_websockets.php''' |
Текущая версия от 02:38, 5 октября 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';
509
//$closePattern = '/THREAD CLOSED:.+?(\.\/scripts\/cycle\_.+?\.php)/is'; $closePattern = '/THREAD CLOSED:.+?(\.\/scripts\/cycle\_.+?\.(php|py))/is';
в /lib/threads.php после
class Threads { public $phpPath = 'php';
Добавляем
public $pyPath = PYTHON_PATH;
получаем:
class Threads { public $phpPath = 'php'; public $pyPath = PYTHON_PATH;
в /modules/xray/xray.class.php.php 777
$title = preg_replace('/\.php$/', '', $entry);
меняем
$title = preg_replace('/\.(php|py)$/', '', $entry);
скопировать файл /scripts/cycle_websockets.py в папку /scripts . Даем соответствующие права (0777) Там же папке переименовать или удалить стандартный цикл вебсокетов cycle_websockets.php