Вебсокеты Eraser
Материал из MajorDoMo инфо
Уважаемый 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