Autor Zpráva
slon_cz
Profil
Zdravím, mám v plánu udělat na webu něco jako živou ruletu. Vše už mám přichystáno, momentálně to mám udělané tak, že si každý uživatel roztáčí ruletu sám, ale rád bych to udělal, že se bude točit jen jedna ruleta treba jednou za minutu pro všechny.

Napadlo me ulozit do db cas roztoceni (teda treba za 1 minutu nebo podle casu) a pak pomoci javascriptu kontrolovat, zda uz nastal ten cas na roztoceni a jakmile se tak stane tak zavolat php script, ktery vyhodnoti sazky a vybere cislo + nastavi do db dalsi cas, kdy ma byt roztoceno. Nejomze me nenapada, jak pocitat ten cas? rspektive bud sehnat vps server nebo neco, kde muze bezet otevreny web porad, nebo to udelat tak, ze hra pobezi jen kdyz tam bude na webu alespon jeden clovek, tim ze bude mit otevrenou stranku, tak bude nacitat script.

Nevim, jestli to co me napadlo je slozite, respektive takto to asi udelam, ale jde mi to, jestli nekoho z Vas nenapada rychlejsi nebo efektivnejsi reseni :)
Leinad
Profil
Zdravím,
kdy a pro koho má ruleta proběhnout? Předpokládám že jen pro přihlášené/aktivní, tedy já bych to řešil tím, že má stránku otevřenou aspoň jeden člověk, který cyklicky (javascriptem) volá nějaký php script. PHP koukne do databáze, kdy losoval naposledy(podle toho buď proběhne nové losování nebo ne).
Čístější řešení by bylo cronem.
slon_cz
Profil
Právě, jenomže problém nastává, když na webu budou třeba dva uživatelé, tak když se jednomu spustí ruleta o pár milisekund dříve, tak ten druhý už neuvidí točení, protože to točení už proběhlo a druhým uživatelem se zároveň vygenerovalo no datum a čas točení.
Leinad
Profil
if(vytočeno dávno) {nové losování();//bacha na timeout}
echo výsledek posledního losu;
slon_cz
Profil
ano, to ale pořád neřeší to, že jakmile javascript načte obsah php scriptu, ve kterém se vypisuje číslo rulety z databaze + po načtení se generuje nové a ukládá do databáze, tak když uplynu timeout a načte se obsah toho php scriptu, tak se ruleta roztočí prvnímu uživateli, druhému se roztočí taktéž, už ale s jiným číslem. Tohle právě nevím jak vyřešit :/
Leinad
Profil
To píšu, generuj nové jedině pokud to staré už je staré. A taky si na to generování zamkni tabulku.
slon_cz
Profil
tedy mít čas, kdy má nastat nové točení, pokud ještě nové točení nenastalo, tak ukazovat staré číslo a v případě, že už $cas_toceni < $cas_aktualni tak vygenerovat nove cislo + upravit dalsi cas toceni? To by šlo, děkuju moc za rady :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: