9 ubojica koristi za WebSockets

Svim mojim čitateljima: Srećom po meni trenutno se nalazim u brazilskim sustavima skaliranja, upijam vrijeme od 32,2 ° C i napunim feijoadu i caipirinhu. U međuvremenu, kako bih održao ovaj blog u skladu s vašim standardima, pozvao sam svog glavnog čovjeka Jonathana Freemana da vas obrazuje dok me nema. Bez daljnjega, evo Jonathana - front-end gurua, stručnjaka za velike podatke i jazz glazbenika. Uživajte i vidimo se za nekoliko tjedana! - ACO

Korisnici sada zahtijevaju informacije čim postanu dostupne. Ako morate osvježiti stranicu da biste dobili nove informacije, već je prekasno. Srećom, protokol koji podržavaju svi moderni preglednici omogućuje izravnu razmjenu podataka: WebSockets.

Ne postoji nijedno drugo rješenje koje pruža istinsku dvosmjernu komunikaciju poput WebSockets, no mnogi se web programeri i dalje oslanjaju na hakove poput AJAX dugog anketiranja. (Za zapisnik, mislim da je dugo anketiranje vrlo kreativno i funkcionalno, ali unatoč tome hakiranje.) Nedostatak entuzijazma za WebSockets možda je povezan sa sigurnosnom ranjivošću prije godina ili nedostatkom podrške preglednika u to vrijeme, ali oba su problema bila obratio.

[Radite pametnije, a ne više - ima savjete i trendove koje programeri trebaju znati u Vodiču za preživljavanje programera. Preuzmite PDF danas! | Pratite najnovije vijesti za programere uz bilten Svijet programera. ]

Utvrđivanje hoće li se WebSockets koristiti za zadati posao jednostavno je:

  • Uključuje li vaša aplikacija više korisnika koji međusobno komuniciraju?
  • Je li vaša aplikacija prozor u podatke na strani poslužitelja koji se neprestano mijenja?

Ako ste na bilo koje od ovih pitanja odgovorili potvrdno, razmislite o upotrebi WebSockets-a. Ako još uvijek niste sigurni i želite li nadahnuća, evo nekoliko slučajeva uporabe ubojica.

1. Socijalna hranjenja

Jedna od blagodati društvenih aplikacija je znati što sve vaši prijatelji rade kad to rade. Naravno, pomalo je jezivo, ali svi ga volimo. Ne želite čekati nekoliko minuta da biste saznali da je član obitelji pobijedio na natjecanju u pečenju pita ili se prijatelj zaručio. Povezani ste s mrežom, pa bi se vaš feed trebao ažurirati u stvarnom vremenu.

2. Igre za više igrača

Web brzo dolazi na svoje kao platforma za igre. Bez potrebe da se oslanjamo na dodatke (gledam vas, Flash), web programeri sada mogu implementirati i eksperimentirati s igrama visokih performansi u pregledniku. Bilo da imate posla s DOM elementima, CSS animacijama, HTML5 platnom ili eksperimentirate s WebGL-om, učinkovita interakcija između igrača presudna je. Ne želim otkriti da se moj protivnik pomaknuo nakon što sam povukao okidač.

3. Zajedničko uređivanje / kodiranje

Živimo u doba distribuiranih razvojnih timova. Rad na kopiji dokumenta nekad je bio dovoljan, ali tada ste morali smisliti način spajanja svih uređenih kopija. Sustavi za kontrolu verzija, poput Git, mogu pomoći u određenim datotekama, ali svejedno ćete morati ući u trag ljudima kada Git pronađe sukob s kojim se ne može nositi. Uz zajedničko rješenje poput WebSockets-a možemo raditi na istom dokumentu i preskočiti sva spajanja. Lako je vidjeti tko što uređuje i ako radite na istom dijelu dokumenta kao netko drugi.

4. Podaci o protoku klika

Sposobnost analiziranja interakcije korisnika s vašom web lokacijom presudna je za njezino poboljšanje. Cijena HTTP-a natjerala nas je da odredimo prioritete i prikupimo samo najvažnije podatke. Zatim, šest mjeseci dalje, shvatimo da smo trebali sakupljati drugu metriku - onu koja je izgledala nevažno, ali bi sada rasvijetlila kritičnu odluku. Ako više ne koristite HTTP zahtjeva, možete biti manje restriktivni u vezi s vrstama podataka koje šaljete od klijenta. Želite li pored učitavanja stranice pratiti i kretanje miša? Jednostavno pošaljite podatke putem WebSocket veze na stražnji kraj i ustrajte u svojoj omiljenoj NoSQL trgovini. (MongoDB je dobar za bilježenje ovakvih događaja.) Sada možete reproducirati interakcije s kupcima da biste vidjeli što se zapravo događa.