Avatar billede cronck Nybegynder
26. juli 2010 - 20:47 Der er 11 kommentarer og
1 løsning

Push data fra server til klient

Hej,

Jeg har længe spekuleret over hvordan større websider med live-indehold holder sig kørende, uden at kunne pushe fra serveren til klienterne. Ellers må de da blive væltet med HTTP-requests. :)

Er det på nogen måde muligt at 'pushe' data fra en Apache server m. PHP, til klienterne?

Hvis det kan lade sig gøre, vil det give mig en masse lækre muligheder, som for eks. at give flere brugere mulighed for at rette i en tekst på samme tid, uden at lave et HTTP-request hvert sekund. :)
Avatar billede cronck Nybegynder
26. juli 2010 - 20:48 #1
Det hander vel i bund og grund om at få Apache'n til ikke at lukke forbindelsen til klienten - Men hvordan, uden den brokker sig over max execution time osv...?
Avatar billede arne_v Ekspert
26. juli 2010 - 21:17 #2
De traditionelle metoder er:

1) rigtig poll hvor noget JavaScript opdaterer hele tide - det giver rigtigt mange requests

2) long poll, hvor noget JavaScript sender en request og venter indtil der er noget nyt - det koster memory og med de fleste nuvaerende web teknologier ogsaa traade

3) koer noget Java Applet / Flash paa client og push ud paa en socket (non HTTP)
Avatar billede cronck Nybegynder
26. juli 2010 - 21:28 #3
Har pt. en  del jquery som poller - Men hvis jeg skal sætte opdaterings-hastigheden så langt ned at det virker "live", vil det meget hurtigt løbe op i frygtelig mange requests, når der er 3-5 brugere på ad gangen. :-)

Java applet / flash er desværre udelukket, da jeg ikke har mulighed for at installere eller programmere en server-applikation der kan svare. :-)

2) Long Poll - Hvordan fungerer det?
Avatar billede arne_v Ekspert
26. juli 2010 - 21:54 #4
re 2)

JavaScript sender request, server script modtager request men svarer foerst naar der er noget at svare paa. 10 sekunder, 1 minut, 10 minutter.
Avatar billede arne_v Ekspert
26. juli 2010 - 21:55 #5
Med lidt snille (laes: vold paa god web skik og brug!) kan en ASP.NET eller Java web app godt bruge scokets til applet/flash.
Avatar billede arne_v Ekspert
26. juli 2010 - 21:56 #6
5 brugere og refresh hvert sekund = 5 requests per sekund

det er ikke ret meget.
Avatar billede ohhelpme Nybegynder
26. juli 2010 - 22:46 #7
jeg ser lige med :P... det lyder spænde det der "long poll"

vis man har over 5.000.000 på en gang mister man da en pænt stor bid af den GB forbindelse man har... hvad gør facebook med deres chat ?
der jo flere milioner på en gang...
Avatar billede ohhelpme Nybegynder
26. juli 2010 - 22:47 #8
sorry, for mine ikke eksisterende kommaer =)
Avatar billede arne_v Ekspert
26. juli 2010 - 23:14 #9
long poll bruger foerst baandbredde naar svaret er klart
Avatar billede arne_v Ekspert
26. juli 2010 - 23:17 #10
Rygterne paa internettet siger at FB's chat system:
- er skrevet i Erlang
- koerer paa 10000 servere
Avatar billede cronck Nybegynder
29. juli 2010 - 17:51 #11
Arne smid du bare et svar.

Jeg tror at jeg må nøjes med at sende "mange" requests til serveren.

Tak for hjælpen :)
Avatar billede arne_v Ekspert
29. juli 2010 - 18:01 #12
svar
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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