Komunikacja strona <-> bot

0

Cześć, witajcie!

Mam stronę WWW(index.php) oraz 'bota'(bot.php). Sprawa wygląda tak: W bocie tworzy się nowy obiekt który łączy się z serwerem. Jest on wykonowany przez screen, dlaczego przez niego chce zrobić? Wydaje mi się to najlepszym rozwiązaniem, ponieważ gdy ktoś wchodząc na stronę odpala bota(zrobiłem to na początku przez dołaczenie pliku bot.php funkcją require). Przez to w krótkim czasie na serwerze mogę miec 10 botów a nawet pseudo dosa, gdy ktoś by odswieżał stronę co sekundę - pomysł odpada.

Moje pytanie takie: Jak zrobić aby index.php odpytał plik bot.php przy załadowaniu strony? Chodzi o to, że bot jest na serwerze przez screen a index.php pyta o aktualne zmienne lub wysyła swoje funkcje do wykonania.

Może da się to inaczej jakoś rozwiązać.

Z góry dziękuję i pozdrawiam!

0

Tylko co ten bot konkretnie ma robić? Są sposoby na ograniczenie częstotliwości wykonywania bota, np. coś takiego:

function run_bot()
{
    require 'bot.php';

    $requests = 100;
    if (mt_rand(1, $requests) === $requests)
    {
        $bot = new MyBot();
        $bot->execute(); 
    }
}

I tak co 1 na 100 requestów ten bot się wykona, oczywiście statystycznie kiedy to mt_rand losowo osiągnie tą wartość 100.

Inny sposób to wykorzystanie cache a raczej prostego systemu antiflood:

function run_bot()
{
    require 'bot.php';

    $key = 'request_cache'; 
    $limit = 100;
    $lifetime = 60;

    if (($cache = Cache::get($key, NULL))  === NULL)
    {
        $bot = new MyBot();
        $bot->execute(); 
        Cache::set($key, 1, $lifetime);
        return; 
    }

    if ($cache < $limit)
    {
        Cache::set($key, $cache+ 1, $lifetime);
    }
    else
    {
        $bot = new MyBot();
        $bot->execute(); 
        Cache::delete($key);
    }
    return;  
}
0

Bot ma wiele do zrobienia w zależności od tego co użytkwnik ze strony wyśle do niego. Jest to obiekt z mnóstwem funkcji a dokładniej ts3admin.info

Bot ma np pobierac wartości z serwera i wyświetlać je na stronie albo wykonać funkcje obiketu, która ma swoje odniesienie na serwerze docelowym

0

A może websocket ?

0

Ale to by wyglądało na to, że musisz dołączyć jakiś kod w tym index.php a ten twój bot.php to jedynie część tej Twojej aplikacji w PHP. Ciężko jest tu powiedzieć coś więcej, ponieważ pierwszy raz mam styczność z tą klasą (jest kod na githubie, więc można przeanalizować) to raz a dwa, to jak tego użyjesz to też zależy od tych wykonywanych czynności (może wpływać też na wydajność i czas ładowania się Twojej strony). Podałem tu przykłady wykorzystywane np. w odśmiecaniu danych (ten pierwszy z mt_rand), drugi to już nieco inna bajka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1