/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Information pushing
Fra : Frowning Freezer


Dato : 18-03-08 09:18

Hvis man har en klient der står og venter på at modtage data fra serveren
når den er færdig med at behandle et request eller en anden handling giver
anledning til det, hvordan er det så smartest og gøre dette?

Lige nu bruger jeg AJAX kald hvert halve sekund tilbage til serveren (fordi
opdateringen på klienten skal ske meget hurtigt - og indtil videre kører jeg
kun på LAN) for at se om der er sket nogle ændringer, men det giver jo et
overhead uden lige med pakker frem og tilbage konstant! Kan jeg ikke lave en
connection til serveren og holde den åben indtil der er data at returnere
til klienten? Hvis der er mange klienter kan det så give problemer med antal
connections til serveren?

Allan



 
 
Martin (18-03-2008)
Kommentar
Fra : Martin


Dato : 18-03-08 10:49

Frowning Freezer wrote:
> Hvis man har en klient der står og venter på at modtage data fra serveren
> når den er færdig med at behandle et request eller en anden handling giver
> anledning til det, hvordan er det så smartest og gøre dette?
>
> Lige nu bruger jeg AJAX kald hvert halve sekund tilbage til serveren (fordi
> opdateringen på klienten skal ske meget hurtigt - og indtil videre kører jeg
> kun på LAN) for at se om der er sket nogle ændringer, men det giver jo et
> overhead uden lige med pakker frem og tilbage konstant! Kan jeg ikke lave en
> connection til serveren og holde den åben indtil der er data at returnere
> til klienten? Hvis der er mange klienter kan det så give problemer med antal
> connections til serveren?

Ikke med PHP... måske du kan med noget .NET

Frowning Freezer (19-03-2008)
Kommentar
Fra : Frowning Freezer


Dato : 19-03-08 09:11

>> Hvis man har en klient der står og venter på at modtage data fra serveren
>> når den er færdig med at behandle et request eller en anden handling
>> giver anledning til det, hvordan er det så smartest og gøre dette?
>>
>> Lige nu bruger jeg AJAX kald hvert halve sekund tilbage til serveren
>> (fordi opdateringen på klienten skal ske meget hurtigt - og indtil videre
>> kører jeg kun på LAN) for at se om der er sket nogle ændringer, men det
>> giver jo et overhead uden lige med pakker frem og tilbage konstant! Kan
>> jeg ikke lave en connection til serveren og holde den åben indtil der er
>> data at returnere til klienten? Hvis der er mange klienter kan det så
>> give problemer med antal connections til serveren?
>
> Ikke med PHP... måske du kan med noget .NET

Hmmm, det er faktisk ikke helt umuligt har jeg nu fundet ud af...! Hvis man
laver et loop i sit PHP script og venter et lille stykke tid mellem hver
gang man tjekker om der er sket ændringer med sleep() eller usleep() (så man
holder klient forbindelsen åben X antal sekunder), så sparer man i hvert
fald kommunikationen frem og tilbage mellem klient og server. Selvfølgelig
er det så serveren der venter i stedet for og den kommer nok til at køre
scriptet oftere end ellers, da PHP jo ikke har nogen "watch" funktion. Men
det må vel være bedre end at lave nye server-client connections hele tiden??

Der er selvfølgelig en time limit på http requesten, men efter X sekunder
kan man jo afslutte scriptet, returnere til klient, som så igen med det
samme laver et nyt request til serveren...

Allan



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste