Programavimas

9 žudikai naudoja „WebSockets“

Visiems savo skaitytojams: Laimei, aš šiuo metu esu Brazilijos mastelio keitimo sistemose, mirksiu 32,2 ° C temperatūroje ir prisipildau feijoados ir caipirinha. Tuo tarpu, kad šis tinklaraštis atitiktų jūsų standartus, aš pasikviečiau savo pagrindinį vyrą Jonathaną Freemaną, kuris mokytų jus tol, kol aš nebūsiu. Be ilgesnio reikalo, štai Jonathanas - „front-end“ guru, didžiųjų duomenų specialistas ir džiazo muzikantas. Mėgaukitės ir susitiksime po poros savaičių! - ACO

Vartotojai dabar reikalauja informacijos, kai tik ji yra prieinama. Jei turite atnaujinti puslapį, kad gautumėte naujos informacijos, jau per vėlu. Laimei, visų šiuolaikinių naršyklių palaikomas protokolas leidžia tiesiogiai keistis duomenimis: „WebSockets“.

Nėra jokio kito sprendimo, kuris užtikrintų tikrą dvikryptį ryšį, pvz., „WebSockets“, tačiau daugelis interneto kūrėjų vis dar pasikliauja tokiais įsilaužimais kaip „AJAX long polling“. (Apskritai, manau, kad ilgas balsavimas yra labai kūrybingas ir funkcionalus, tačiau vis dėlto įsilaužimas.) „WebSockets“ entuziazmo trūkumas gali būti susijęs su prieš metus trukusiu saugumo pažeidžiamumu arba tuo metu naršyklės palaikymo trūkumu, tačiau abi problemos buvo išspręstos. adresuotas.

[Dirbkite protingiau, o ne sunkiau - ar programuotojai turi žinoti patarimus ir tendencijas kūrėjų išgyvenimo vadove. Atsisiųskite PDF jau šiandien! | Sekite naujausias kūrėjų naujienas naudodami „Developer World“ naujienlaiškį. ]

Paprasta nustatyti, ar naudoti „WebSockets“ atliekamam darbui:

  • Ar jūsų programoje keli vartotojai bendrauja tarpusavyje?
  • Ar jūsų programa yra langas į serverio duomenis, kurie nuolat keičiasi?

Jei į vieną iš šių klausimų atsakėte teigiamai, apsvarstykite galimybę naudoti „WebSockets“. Jei vis dar nesate tikri ir norite įkvėpimo, pateikiame keletą žudikų naudojimo atvejų.

1. Socialiniai kanalai

Vienas iš socialinių programų pranašumų yra žinoti, ką daro visi jūsų draugai, kai tai daro. Aišku, šiek tiek šiurpu, bet mums visiems tai patinka. Nenorite laukti minučių, kad sužinotumėte, jog šeimos narys laimėjo pyragų kepimo konkursą ar draugas susižadėjo. Esate prisijungę, todėl jūsų sklaidos kanalas turėtų būti atnaujinamas realiuoju laiku.

2. Daugelio žaidėjų žaidimai

Žiniatinklis greitai tampa sava žaidimų platforma. Nereikėdami pasikliauti papildiniais (aš žiūriu į jus, „Flash“). Interneto kūrėjai dabar gali įdiegti ir eksperimentuoti su didelio našumo žaidimais naršyklėje. Nesvarbu, ar turite reikalų su DOM elementais, CSS animacijomis, HTML5 drobėmis, ar eksperimentuojate su „WebGL“, labai svarbu efektyvi žaidėjų sąveika. Nenoriu sužinoti, kad mano varžovas pasislinko po to, kai paspaudžiau gaiduką.

3. Bendras redagavimas / kodavimas

Gyvename paskirstytų „dev“ komandų amžiuje. Užteko dirbti su dokumento kopija, bet tada reikėjo sugalvoti būdą, kaip sujungti visas redaguotas kopijas. Versijų valdymo sistemos, pvz., „Git“, gali padėti tvarkant tam tikrus failus, tačiau vis tiek turėsite susekti žmones, kai „Git“ ras konfliktą, kurio negali išspręsti. Naudodami tokį bendrą sprendimą kaip „WebSockets“, galime dirbti su tuo pačiu dokumentu ir praleisti visus sujungimus. Nesunku suprasti, kas ką redaguoja ir ar dirbate su ta pačia dokumento dalimi, kaip ir kažkas kitas.

4. Paspaudimų srauto duomenys

Gebėjimas analizuoti, kaip vartotojai sąveikauja su jūsų svetaine, yra labai svarbus ją tobulinant. HTTP kaina privertė mus teikti prioritetus ir rinkti tik svarbiausius duomenis. Tada, praėjus šešiems mėnesiams, suprantame, kad turėjome rinkti kitokią metriką - tokią, kuri atrodė nesvarbi, bet dabar atskleis kritišką sprendimą. Jei HTTP užklausų pridėtinės išlaidos nėra tokios, jūs galite mažiau apriboti duomenis, kuriuos siunčiate iš kliento. Norite stebėti pelės judėjimą be puslapio įkėlimo? Tiesiog nusiųskite duomenis per „WebSocket“ ryšį į galinę dalį ir išsaugokite juos savo mėgstamoje „NoSQL“ parduotuvėje. („MongoDB“ tinka registruoti tokius įvykius.) Dabar galite atkurti klientų sąveiką ir sužinoti, kas iš tikrųjų vyko.

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