Daymo 0 Zgłoś post Napisano Luty 24, 2013 Witam, poszukuję skryptu na limit osób online na stronie, np. chcę ustawić limit 50 osób online, jak wejdzie 51 osoba to pokaże komunikat, że brak miejsc.. Jak do czegoś takiego się zabrać? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Luty 24, 2013 (edytowany) Edytowano Marzec 26, 2018 przez Gość (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Luty 24, 2013 Cóż. Jako, że niektórzy czują się bardzo pokrzywdzeni dostanym "minusem" to wyjaśnienie zgrubne: modyfikacja głównej dyrektywy konfiguracyjnej samego serwera NIE JEST skryptem, a o skrypt pytał autor. Dodatkowo modyfikacja jej wpływa na wszystkie połączenia z danym serwerem, więc założyć należy, że jest on pod wyłącznie pod ten cel, a to wcale nie jest takie oczywiste. Dodatkowo, limitować będzie nie tyle liczbę odwiedzających, jak żądań. A to jest (wbrew pozorom) spora różnica. Gotowca do czegoś takiego raczej nie ma. A tworząc takie narzędzie trzeba by sporo rzeczy uwzględnić. Pierwsze - jak zdefiniować pojęcie OSOBA. TCP/IP nie jest protokołem stanowym, więc nie widać, czy user jeszcze siedzi na stronie i za chwilę otworzy jakiś link, czy też user już dawno zamknął przeglądarkę. Większość mechanizmów z którymi miałem doczynienia działała tak, że ograniczany był dostęp do strefy logowania. Tzn. użytkownik się loguje i wtedy sprawdzana jest liczba wolnych slotów. Jeśli są jakieś, to logowanie zapisywane jest do bazy, a czas ważności danej sesji to 10 minut od ostatniej akcji. Jeśli user się wyloguje lub w ciągu 10 minut nie wykona akcji, to miejsce jest zwalniane. Jeśli nie ma wolnych slotów, to wtedy komunikat spróbuj później. Problem tylko taki, że w momencie zdefiniowania takiego ograniczenia duża część użytkowników zacznie wykonywać odświeżenia strony i będzie lekko sfrustrowana, a poza tym te ciągłe sprawdzenia spowodują dość duże obciążenie systemu. Można więc gratis dołożyć rezerwację slotów czasowych - user dostaje komunikat, że teraz nie może, ale będzie mógł o godz. 20:15 odświeżyć i ma zagwarantowany slot. No ale to dochodzi problem albo z efektywnością albo koniecznością nadmiarowej obsługi slotów (bo co jak prawowici userzy będą przedłużać sesje - albo dopuścić wtedy tych gwarantowanych i przez pewien czas będzie więcej niż być powinno, no albo blokować slot, aby ktoś wchodzący pierwszy raz nie dostał go wcześniej). Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Luty 24, 2013 Jeśli chcesz to rozwiązać koniecznie "serwerowo" to albo jakiś skrypt zliczający userów bazując na ich IP -> logowanie każdej akcji w jakimś access.log i dodawanie wszystkich IP, które wykonały konkretną akcję w przeciągu ~10 min do bazy, albo rozwiązanie czysto firewallowe w stylu: iptables -A INPUT -p tcp --syn --dport 1337 -m connlimit --connlimit-above 50 -j REJECT --reject-with tcp-reset Problem z tym rozwiązaniem jest taki, że tak jak @samu wspomniał wyżej protokół TCP nie działa w ten sposób i jest to dosyć "brzydkie" rozwiązanie, do tego nie realizuje tego do czego zmierzasz (user dostanie zwykły error po stronie przeglądarki, a nie wiadomość). Najlepszym rozwiązaniem jest rozwiązanie bezpośrednio w danej aplikacji, większość playerów ma opcję pokazywania ilości widzów, a więc wystarczy prosty if na samym początku playera czy aktualny viewers_count jest mniejszy od 50. Udostępnij ten post Link to postu Udostępnij na innych stronach
Daymo 0 Zgłoś post Napisano Luty 24, 2013 To może podpowiecie jaki player rtmp www można użyć do takiego celu? Jestem w tym zielony.. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Luty 24, 2013 W każdym szanującym się serwerze rtmp jest opcja żeby limitować sloty per kanał i per all, na bank. Udostępnij ten post Link to postu Udostępnij na innych stronach
Daymo 0 Zgłoś post Napisano Luty 25, 2013 To wie ktoś jak zrobić taki limit w RED5? Szukałem poradników, ale ani angielskich ani tym bardziej polskich na ten temat.. Udostępnij ten post Link to postu Udostępnij na innych stronach
TomaszG 6 Zgłoś post Napisano Luty 26, 2013 A ile chcesz zapłacić za takie rozwiązanie ? zresztą ktoś ci już proponował wykonanie. Udostępnij ten post Link to postu Udostępnij na innych stronach