Вебсокеты Eraser: различия между версиями

Материал из MajorDoMo инфо
Нет описания правки
Нет описания правки
Строка 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