09. januar 2015 - 10:56Der er
8 kommentarer og 1 løsning
Er der noget nyt...
Jeg søger en metode hvormed en bunke browsere kan "slå op" på PHP-serveren, og se om det er kommet noget nyt indenfor et "emne" - Fx. i en chat eller live-blog.
Altså hvor tusinder af browsere, med korte mellemrum, spørger: Noget nyt om XYZ ? - UDEN at lægge serveren ned i de 99,99% tilfælde hvor der intet nyt er.
De to metoder jeg kender: A. Slå op i databasen: select last_modified from nyt where emne=XYZ B. Returnér indholdet af text-filen "XYZ" (indholder last_modified)
Det jeg helst ville have: - $_nyt_['XYZ'] (=last_modified) ligger klar i RAM = slet ingen disk-access!
Nogen idéer ? - eller, hvis ikke, om metode A eller B er bedst (eller der findes noget hurtigere) ?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
1) Undgaa at applikationen tilgaar databasen/diskfil for hver request.
Det kraever en cache.
Er det ikke et krav at din applikation skal kunne skalere horizontalt og du ikke bruger PHP, saa er det nemt.
For PHP skal du have fat i en en extension som kan cache mellem requests.
For horizontal skalering skal du have en cluster wide cache eller din business logic skal kunne leve mere flere separate caches.
Fil vil formentligt vaere lidt hurtigere end database. Men filer er igen problematiske for horizontal skalering. Fil adgang over netvaerk er naturligvis muligt, men det er langsomt og saa vil database nok vaere hurtigst.
2) Hvilken form for requests vil belaste serveren mindst.
Helt primitiv poll er nemt at implementere, men er dyrt i performance.
Long poll (ogsaa kendt som Comet style) er mindre resource kraevende, *hvis* server side kan haandtere det smart. For PHP vil det igen kraeve en speciel extension.
Web sockets er true push og derfor optimalt performance maessigt. Men der er problemer med support i gamle browsere. Der kan vaere firewall problemer. Og igen vil det kraeve en extension til PHP.
Synes godt om
Slettet bruger
09. januar 2015 - 16:30#4
Ja "desværre kun" PHP her. SignalR (som ellers lyder helt rigtigt) er vist en ASP <-> iE (sikkerhed i morgen) teknologi ? - Men princippet bagved, er vel (også) direkte socket-snak ?
WebSocket med socket.io ovenpå (edderhylme avanceret!) lyder helt rigtigt - efter 3 minutters "research" : )
Mange tak - Har du brugt det selv ? - er det virkelig så ukompliceret som David Walsh skriver ?
Synes godt om
Slettet bruger
09. januar 2015 - 16:49#5
Hm... øv. - Ægte push fra PHP til browser kræver "skruetrækker-adgang" til serveren (?) Det har jeg ikke - ligger på et lille virtuelt hjørne (hos Servage.net)
Kan PHP virkelig ikke (op)rette en streng i RAM på serveren. - som kan læses af en anden PHP-tråd (hvis den kender navnet) ?
Umiddelbart synes jeg at det var ganske fair med en deling.
Og svar fra mig.
Synes godt om
Ny brugerNybegynder
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.