Toimiiko Comet tekniikka käytännössä webhotelleissa? Jos esim. 1000 käyttäjää samanaikasesti ja jokasta palvelee oma PHP scriptinsä. Onko tollasta samanaikasta PHP scriptien suoritusta rajoitettu yleensä webhotelleissa?
Ja kuinkahan yleistä on, että PHP:n time limittiä ei ole tai sen voi säätää funktiolla pois päältä? Tietty vaikka toi time limitti olis joku 30 sec, niin voi käyttää sitä Comet tekniikkaa, että yhdistää aina uusiks kun servu katkasee.
Puhutaan nyt kohtuuhintasista webhotelleista, esim 20-50€ / vuosi.
Ulkomaalaisia webhotelleja löytyy tuohon hintahaarukkaan luultavasti paljonkin. Suomalaisista en sitten tiedä.
Putkalainen kirjoitti:
Ulkomaalaisia webhotelleja löytyy tuohon hintahaarukkaan luultavasti paljonkin. Suomalaisista en sitten tiedä.
Webhotelleja löytyy kyllä vaikka ilmaseks. Meinaatko että noihin mun vaatimuksiin sopiviakin löytyy? Jos, ni annas sitten linkkiä?
1000 käyttäjää samanaikaisesti pyörittävää ei tuohon hintaan varmaan löydy. Mutta jos 80 prosessia kerralla riittää niin esim. http://www.bluehost.com/
No joo toi 1000 on ehkä vähän liioteltu. 100 vois olla realistisempi luku :p. Aika suosittu palvelu täytyynee olla et tuhatta olis kerral..
Tuolta sun linkistä
"UNLIMITED Hosting Space"
Herättää tollane mainostus jo vähän epäilyjä, onko noiden servut sairaan hitaita vai onko tiedostokoko rajotus jotain 100kt...
Pari viikkoa olen Bluehostia kokeillu ja tähän mennessä kokemukset ovat olleet ainoastaan positiivisia. Asiakaspalvelu toimii loistavasti ja ominaisuudet ovat olleet hyvät.
Tänään juuri päivittivät 15Gigan levytilan ja liikennöintikapasiteetin rajoittamattomaan. Ei ole hidas. Eikä ole minkään näköisiä rajoituksia tiedostokoolle. 30 sekunnin time limitti PHP:ssä pieni miinus. Mutta hintaansa nähden tuo on loistava paketti.
Jos jollakin muulla on kokemuksia Bluehostista niin olisin kiinnostunut kuulemaan.
Nyt on pakko kysyä, että mikä on Comet tekniikka? Google ei auttanut :(
Putkalainen: Ootko kokeillut PHP:n set_time_limit(sek) funktiota, saako sillä säädettyä timelimittiä?
punppis kirjoitti:
Nyt on pakko kysyä, että mikä on Comet tekniikka? Google ei auttanut :(
Engl. Wikipediasta: Comet (Programming)
Lyhyesti: kun käyttäjä ottaa servulla olevaan scriptiin yhteyden niin scripti pitää yhteyden auki ja lähettää uutta dataa käyttäjälle sillon kun sitä on saatavilla.
while(true){ echo $data; flush(); sleep(1); }
Tietty sitten ottamalla vaikka AJAX:illa yhteyden tohon scriptiin, saadaan se siististi pyörimään taustalla.
Matso kirjoitti:
Putkalainen: Ootko kokeillut PHP:n set_time_limit(sek) funktiota, saako sillä säädettyä timelimittiä?
Ei saa 30 sekuntia pidemmäksi. Mutta tuon voi varmaan ohittaa reconnectaamalla? (En kyllä tiedä miten)
set_time_limit(0) => ei aikarajaa
Kappas ovat tainneet tuonkin päivittää! Eli time limittiä ei enään ole.
<?php set_time_limit(0); $data = "moi"; while(true){ echo $data; flush(); sleep(1); } ?>
^Toimii hienosti
Mutta mikäs hyöyty tästä Comet-tekniikasta on sitten käytännössä? Eikös tuo yhden php-skrpitin loputon looppaaminen vie aika paljon servulta tehoja? Eikö olisi järkevämpää tehdä php-skripti, joka tulostaa jotain vaikka GET-parametrien perusteella, ja ottaa siihen yhteyttä vähän väliä AJAXin avulla. Näin sivua ei tarvitse ladata uudestaan, eikä servun tehoja käytetä hukkaan.
punppis kirjoitti:
Mutta mikäs hyöyty tästä Comet-tekniikasta on sitten käytännössä? Eikös tuo yhden php-skrpitin loputon looppaaminen vie aika paljon servulta tehoja? Eikö olisi järkevämpää tehdä php-skripti, joka tulostaa jotain vaikka GET-parametrien perusteella, ja ottaa siihen yhteyttä vähän väliä AJAXin avulla. Näin sivua ei tarvitse ladata uudestaan, eikä servun tehoja käytetä hukkaan.
Riippuu siitä mitä tekee. Jos tieto täytyy saada mahdollisimman nopeasti, kuluttaa AJAX kyselyt kaistaa todella paljon. Esimerkiks sekunnin välein teet pyyntöjä servulle niin kyl siinä kaistaa menee. Comet ei kuluta kaistaa lainkaan odotustilassa.
Teeppä vaikka chatti, niin edes sekunnin välein tehtävä tarkistus ei ole välttämättä riittävä (viiveen huomaa varsin hyvin). Cometissa tieto siirtyy kutakuinkin heti, koska yhteys pidetään auki.
Mutta eikös siihen looppiskriptaankin pidä ottaa vähän väliä yhteyttä ajaxilla, joka taas kuluttaa kaistaa yhtäpaljon. Muutenkin mielestäni on paljon järkevämpää kuluttaa hieman enemmän selaajan kaistaa, kun kuluttaa rutkasti enemmän palvelimen resursseja.
Tietääkseni jotkut hosting-palvelujen tarjoajat ovat kieltäneet Comet-tekniikan käytön kokonaan, jopa palvelun sulkemisen uhalla.. Mutta en mene takuuseen.. :D
punppis kirjoitti:
Mutta eikös siihen looppiskriptaankin pidä ottaa vähän väliä yhteyttä ajaxilla, joka taas kuluttaa kaistaa yhtäpaljon. Muutenkin mielestäni on paljon järkevämpää kuluttaa hieman enemmän selaajan kaistaa, kun kuluttaa rutkasti enemmän palvelimen resursseja.
Mikä siinä on niin sairaan vaikeeta ymmärtää??
Cometin kaistan käyttö odotustilassa ~= 0
Ajaxin kaistan käyttö odotustilassa: 0.001-9999MB/h
Cometilla ei kulu sitä kaistaa yhtään mihinkään eikä sen ajax scriptin tarvii ottaa yhtään mihinkään yhteyttä uudestaan ennenkun jompikumpi puoli katkasee yhteyden.
Otetaan vaikka esimerkiks IRC. Ei irkissäkään IRC-clientit kysele IRC-palvelimelta 0,01 sekunnin välein onx uusii viestejä saatavilla.
Matso kirjoitti:
Cometin kaistan käyttö odotustilassa ~= 0
Ajaxin kaistan käyttö odotustilassa: 0.001-9999MB/hCometilla ei kulu sitä kaistaa yhtään mihinkään eikä sen ajax scriptin tarvii ottaa yhtään mihinkään yhteyttä uudestaan ennenkun jompikumpi puoli katkasee yhteyden.
Voisko tästä antaa jotain konkreettista esimerkkiä, kun en vain suostu tajuamaan tätä ;D
Tai siis tottakai sen Comet-skriptan kaistan käyttö on 0, mutta miten tiedetään, että koska sitä pitää kutsua?
punppis kirjoitti:
Matso kirjoitti:
Cometin kaistan käyttö odotustilassa ~= 0
Ajaxin kaistan käyttö odotustilassa: 0.001-9999MB/hCometilla ei kulu sitä kaistaa yhtään mihinkään eikä sen ajax scriptin tarvii ottaa yhtään mihinkään yhteyttä uudestaan ennenkun jompikumpi puoli katkasee yhteyden.
Voisko tästä antaa jotain konkreettista esimerkkiä, kun en vain suostu tajuamaan tätä ;D
Tai siis tottakai sen Comet-skriptan kaistan käyttö on 0, mutta miten tiedetään, että koska sitä pitää kutsua?
Ihan huvikseenko trollaat, vai etkö oikeesti tajua näin yksinkertasta juttua? LUE SIITÄ -> http://en.wikipedia.org/wiki/Comet_(programming)
Ok, nyt kun tutkin enemmän niin tajusin kyllä. Luulin aluksi, että tuo on vain käytännössä php-skripti jota loopataan, mutta tarvitaanhan siihen selainpuoleltakin javascriptiä.
punppis kirjoitti:
Ok, nyt kun tutkin enemmän niin tajusin kyllä. Luulin aluksi, että tuo on vain käytännössä php-skripti jota loopataan, mutta tarvitaanhan siihen selainpuoleltakin javascriptiä.
Ei välttämättä, mutta käytännössä JavaScript on paras tapa hyödyntää kyseistä tekniikkaa. Otetaan AJAX:illa yhteys tuohon PHP scriptiin niin se rullaa siististi taustalla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.