Avatar billede mr_bacardi Nybegynder
08. december 2004 - 19:10 Der er 3 kommentarer og
1 løsning

Minimalt trafikforbrug, men med server til client forbindelse

Hej

Jeg er stødt ind i et større problem.
Jeg har hidtil kørt en chat i PHP, hvor jeg har fået beskeder o.l. frem til brugeren på følgende måde:
i en fil er der sat set_time_limit(0), som gør siden ikke indlæses helt efter fx 30 sekunder.
Der køres så en "uendelig løkke", med hvor der pauses med usleep() for at undgå et overdreven CPU forbrug.
I denne løkke tjekkes der så for nye beskeder og de andre informationer der skal sendes til client.

Problemet med dette er at det har et kæmpe trafik forbrug, hver bruger downloader med ca. 0,5-1,0 kb/s hele tiden hvor de er online. Med gennemsnitligt 20 brugere online i døgnet er jeg derfor oppe på 13GB trafik om måneden.
Mit webhotel har nu (selvom det da jeg oprettede webhotellet ikke var forbudt ifølge deres betingelser) tvunget mig til at lukke sitet indtil trafik forbruget er nedsat, ellers ville jeg få en regning på trafikken, som ville lyde på 45 kr pr. GB.

Jeg skal derfor bruge en ny metode, at få beskederne fra serveren og ud til alle brugerne på, hvordan kan det gøres?
Her vil jeg ikke have nogen kode, men bare kort om hvordan det kan gøres og med hvilke funktioner, det skal helst være i ren PHP, men hvis det ikke kan lade sig gøre vil jeg også gerne høre om hvordan det ellers kan gøres.

På forhånd tak.
Avatar billede elskermad.dk Nybegynder
08. december 2004 - 19:33 #1
med en iframe som opdateres hvert 3 sekund eller lignende, og som så opdatere chatten via noget javascript...

også sikre dig at det kun er "nye" beskeder som bliver hentet fra databasen og overført hver gang for at undgå for stort trafikforbrug...

men vil nu mene en chat ligemeget hvordan du sætter det op, vil bruge mere trafik end så mange andre sider!
Avatar billede mr_bacardi Nybegynder
08. december 2004 - 19:55 #2
Reload chatte benytter endnu mere trafik, så det er udelukket.. Desuden giver det store problemer for både client og server.
Avatar billede olebole Juniormester
09. december 2004 - 15:08 #3
<ole>

mr_bacardi >> Med al respekt ... at reloade chatten ville aflaste serveren i ekshorbitant grad - fremfor at lade den sleep'e.
Med fornuftig kode bliver trafikken ikke mindre, men heller ikke væsentligt forøget.
Klienten har ingen somhelst problemer med det.

Til gengæld er opdatering hvert 3. sekund urealistisk.

/mvh
</bole>
Avatar billede mr_bacardi Nybegynder
21. februar 2005 - 23:35 #4
Har senere hen fundet ud af problemet lå ikke i at den kørte loop'en, men at jeg konstant sendte informationer til brugeren, som egentlig ikke er nødvendig - det er derfor løst ved en grundig gennemgang af koden...
Den bruger dog stadig en del trafik, men det problem er løst ved at jeg har flyttet sitet over til en Virtual Server i USA, hvor jeg har 100 GB trafik til rådighed.
Spørgsmålet lukkes derfor...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester