Programmering

9 mordere bruger til WebSockets

Til alle mine læsere: Heldigvis for mig befinder jeg mig i øjeblikket i Brasiliens skaleringssystemer, blæser op i 32,2 ° C (90 ° F) vejr og har fyldt med feijoada og caipirinha. I mellemtiden har jeg tilmeldt min hovedmand Jonathan Freeman til at uddanne dig, mens jeg er væk, for at holde denne blog op til dine standarder. Uden yderligere ado er her Jonathan - front-end guru, big data specialist og jazzmusiker. Nyd og se dig om et par uger! - ACO

Brugere kræver nu information, så snart de er tilgængelige. Hvis du skal opdatere siden for at få nye oplysninger, er det allerede for sent. Heldigvis giver en protokol understøttet af alle moderne browsere mulighed for direkte dataudveksling: WebSockets.

Der findes ingen anden løsning, der giver ægte tovejskommunikation som WebSockets, men alligevel er mange webudviklere stadig afhængige af hacks som AJAX long polling. (For ordens skyld synes jeg, at lang afstemning er yderst kreativ og funktionel, men alligevel et hack.) Mangel på entusiasme for WebSockets kan være relateret til en sikkerhedssårbarhed for mange år siden eller manglen på browserstøtte på det tidspunkt, men begge problemer har været adresseret.

[Arbejd smartere, ikke hårdere - har de tip og trends, som programmører har brug for at vide i udviklernes overlevelsesvejledning. Download PDF i dag! | Hold dig opdateret med de seneste udviklernyheder med 's Developer World-nyhedsbrev. ]

Det er enkelt at afgøre, om der skal bruges WebSockets til det aktuelle job:

  • Involverer din app flere brugere, der kommunikerer med hinanden?
  • Er din app et vindue i serversiden, der konstant ændrer sig?

Hvis du svarede ja på et af disse spørgsmål, kan du overveje at bruge WebSockets. Hvis du stadig er i tvivl og vil have lidt inspiration, er der et par killer-use-sager.

1. Sociale feeds

En af fordelene ved sociale apps er at vide, hvad alle dine venner laver, når de gør det. Sikker på, det er lidt uhyggeligt, men vi elsker det alle sammen. Du ønsker ikke at vente minutter for at finde ud af, at et familiemedlem vandt en konkurrence med tærtebage, eller at en ven er forlovet. Du er online, så dit feed skal opdateres i realtid.

2. Multiplayer-spil

Internettet kommer hurtigt til sin ret som en spilplatform. Uden at skulle stole på plug-ins (jeg kigger på dig, Flash) er webudviklere nu i stand til at implementere og eksperimentere med højtydende spil i browseren. Uanset om du har at gøre med DOM-elementer, CSS-animationer, HTML5-lærred eller eksperimenterer med WebGL, er effektiv interaktion mellem spillere afgørende. Jeg vil ikke opdage, at min modstander er flyttet, efter at jeg har trukket på aftrækkeren.

3. Samarbejdsredigering / kodning

Vi lever i en alder af distribuerede dev-teams. Arbejde med en kopi af et dokument, der plejede at være tilstrækkeligt, men så var du nødt til at finde ud af en måde at flette alle de redigerede kopier sammen. Versionskontrolsystemer som Git kan hjælpe med bestemte filer, men du bliver stadig nødt til at spore folk, når Git finder en konflikt, den ikke kan håndtere. Med en samarbejdsløsning som WebSockets kan vi arbejde på det samme dokument og springe alle fusioner over. Det er let at se, hvem der redigerer hvad, og om du arbejder på den samme del af et dokument som en anden.

4. Clickstream-data

At kunne analysere, hvordan brugere interagerer med dit websted, er afgørende for at forbedre det. Omkostningerne ved HTTP har tvunget os til kun at prioritere og indsamle de vigtigste data. Derefter, seks måneder efter linjen, indser vi, at vi skulle have samlet en anden måling - en, der så uvigtig ud, men nu ville kaste lys over en kritisk beslutning. Med overhead af HTTP-anmodninger ude af vejen kan du være mindre restriktiv med hensyn til den slags data, du sender fra klienten. Vil du spore musebevægelse ud over sidebelastning? Du skal bare sende dataene via en WebSocket-forbindelse til bagenden og beholde dem i din foretrukne NoSQL-butik. (MongoDB er god til at logge begivenheder som denne.) Nu kan du afspille kundeinteraktioner for at se, hvad der virkelig foregik.

$config[zx-auto] not found$config[zx-overlay] not found