addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1linklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Re: [php-360] HTTP Streaming

From: Jette D.
Sent on: Monday, September 6, 2010 11:45 AM
On Thu,[masked] at 07:03 -0400, Jette Derriche wrote:
[...]
> 
> Chefen har givet mig til opgave at udvikle en chat. Jeg har aldrig selv
> udviklet eller arbejdet med chat software, men jeg ved at den i hvert
> fald IKKE skal v��re baseret p�� en database og http kald til serveren med
> ultrakorte intervaller.
> 
> Jeg sidder i disse dag og kigger p�� APE (Ajax Push Engine):
> http://www.ape-pr...­
> 
[...]

Jeg har siden ovenst��ende indl��g f��et firkantede ��jne af at l��se om
push-teknologier og har bl.a. l��rt at sige "Comet server". 

En Comet server er en webserver der er rigtig kvik til at h��ndtere
long-lived connections, alts�� forbindelser der etableres og bevares
s��ledes at serveren kan sende data til klienten n��r den har lyst. Data
kan f.eks. v��re chat-beskeder mellem 2 brugere.

APE som jeg kiggede p�� er ogs�� en Comet server, men den har jeg skrottet
igen, fordi det simpelthen var for kompliceret at installere den p��
FreeBSD. Jeg skal bruge den p�� 4 servere der ikke n��dvendigvis k��rer
samme FreeBSD version, s�� det kunne blive rigtig k��nt.

Nu er det ogs�� s��dan at Comet servere som regel kun underst��tter ��t
server-side sprog, og det er aldrig PHP. Jeg havde derfor accepteret at
jeg nok m��tte til at l��re server-side javascript, pike, ruby eller noget
helt fjerde.

Men s�� faldt jeg over Hookbox (http://hookbox.or...­), og jeg har lidt
sv��rt ved at skrive, for jeg kan n��sten ikke f�� armene ned :-D Med
Hookbox kan man skrive server-delen i sit favorit-sprog og s�� sender
Hookbox ganske enkelt en foresp��rgsel til denne applikation ved hver
event.
F.eks. n��r en bruger opretter forbindelse, sender Hookbox en
foresp��rgsel til min php-applikation som s�� svarer true|false tilbage. 
Den sender endda sessions ID'et med.

Det eneste Hookbox s��ledes g��r, er at h��ndtere push-forbindelsen til
klienten. Alle beslutninger tages af den applikation som den h��gter sig
p�� (deraf navnet Hookbox).

Det er klart at Hookbox s��ledes bruger lidt mere hukommelse end andre
Comet servere, men det kan jeg sagtens leve med, set i forhold til det
besv��r jeg ville have ved at skulle programmere i et sprog jeg stort set
ingen erfaring har med.

Til geng��ld er det nemt at skalere Hookbox. Vi har i forvejen 4
webservere og jeg planl��gger at installere Hookbox p�� dem alle og
replikere data mellem dem... 

Det undrede mig lidt, at ingen her p�� listen tilsyneladende har erfaring
med realtids-applikation­er... men nu arbejder jeg jo ogs�� med et website
der prim��rt h��ndterer kommunikation mellem mennesker. Og den slags kan
jo som bekendt kun g�� for langsomt.

Men folk f��r st��rre og st��rre forbindelser, fiberen er p�� vej ud i
villahaverne og et par browsere (mener det er Firefox og Chrome)
underst��tter allerede HTML5 websockets. Realtids-applikation­er er derfor
noget vi webudviklere ikke kommer udenom... 

Nu er jeg sp��ndt p�� at f�� det hele op at k��re, og bagefter fort��ller jeg
gerne om mine erfaringer, hvis nogen er interesseret.


/Jette

Our Sponsors

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy