Вебсокеты Eraser: различия между версиями
Материал из MajorDoMo инфо
Mixman (обсуждение | вклад) Нет описания правки |
Mixman (обсуждение | вклад) Нет описания правки |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Уважаемый '''Eraser''' сделал для majordomo альтернативные вебсокеты. | Уважаемый '''Eraser''' сделал для majordomo альтернативные вебсокеты. | ||
Чтобы установить, нужно проделать следущее: | Чтобы установить, нужно проделать следущее:<br> | ||
в консоли сервера (SSH) | в консоли сервера (SSH) | ||
<pre>pip install websockets</pre> | <pre>pip install websockets</pre> | ||
или для python3 | или для python3 | ||
<pre>pip3 install websockets</pre> | <pre>pip3 install websockets</pre><br> | ||
возможно, понадобится вначале с судо | возможно, понадобится вначале с судо | ||
Строка 11: | Строка 13: | ||
или для python3 | или для python3 | ||
<pre>sudo pip3 install websockets</pre> | <pre>sudo pip3 install websockets</pre> | ||
<br> | |||
расскоменчиваем в config.php | |||
<pre>Define('PYTHON_PATH','python'); // path to python</pre> | |||
или | |||
<pre>Define('PYTHON_PATH','python3'); // path to python</pre> | |||
в cycle.php (примерно 308 строка) заменить | в cycle.php (примерно 308 строка) заменить | ||
Строка 21: | Строка 29: | ||
</pre> | </pre> | ||
а так же | |||
<pre> | |||
if (preg_match('/(cycle_.+?)\.php/is', $path, $m)) { | |||
</pre> | |||
на | |||
<pre> | |||
if (preg_match('/(cycle_.+?)\.(php|py)/is', $path, $m)) { | |||
</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''' после | |||
<pre> | |||
class Threads | |||
{ | |||
public $phpPath = 'php'; | |||
</pre> | |||
Добавляем | |||
<pre> | |||
public $pyPath = PYTHON_PATH;</pre> | |||
получаем: | |||
<pre> | |||
class Threads | |||
{ | |||
public $phpPath = 'php'; | |||
public $pyPath = PYTHON_PATH; | |||
</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