Kaj je WebSocket? - Metode in atributi WebSockets

Kazalo:

Anonim

Kaj je WebSocket?

Predstavljajte si, kako pišete e-poštno sporočilo prijatelju ali kolegu. Vedno začneš z Zdravo, sledi kontekst in končaš z zahvalo. Zdaj si predstavljajte isto kot vi in ​​vaš prijatelj / kolega, ki se pogovarjata osebno. Bi vse svoje besedilo še vedno začeli s Pozdravljeni in končali z zahvalo? Veliko NE, kajne? To praktično povzema HTTP in WebSocket.

Tehnično razumevanje WebSocket-a

WebSocket je dvosmerni komunikacijski protokol. Omogoča popolno dvostransko povezavo. Naj razumemo, kako pomembni so ti izrazi.

Če pogledamo nazaj na primer e-poštnih sporočil in osebnih pogovorov, e-poštni naslovi označujejo protokol HTTP, medtem ko pogovori iz oči v oči pomenijo protokol WebSocket. To ne pomeni, da se e-poštna sporočila pošiljajo prek protokola HTTP, ne. E-poštna sporočila večinoma uporabljajo SMTP protokole, vendar za zdaj to ne skrbimo. Ključni del tega primera je odpiranje in zapiranje osnovne povezave med obema stranema, ki izmenjujeta informacije.

HTTP izmenjuje informacije z odpiranjem nove povezave v vsakem ciklu odziva na zahtevo. Torej, vsakič, ko pošljete zahtevo ali prejmete odgovor, HTTP vzpostavi novo povezavo. Pomislite na povezavo kot preprosto na varno linijo za prenos informacij. Takoj, ko so podatki dostavljeni, HTTP povezavo prekine.

WebSocket ohranja povezavo odprto za vas, tako da lahko izmenjujete informacije po isti vrstici, dokler eden od vas ne prekine povezave.

Še malo tehničnega …

Ok, razumem, da je povezava odprta. Kako mi pomaga? Ne počutim se nobene razlike, ali pošiljam e-pošto ali pošiljam klepeta.

Prav imaš. Razlika vam kot končnemu uporabniku ni vidna. Pomislimo kot razvijalca aplikacij. Ko rečem, da odprem varno linijo za izmenjavo informacij, je v njej vključen postopek. To se običajno imenuje rokovanje. To je postopek, s katerim se oba stroja, ki sodelujeta v pogovoru, dogovorita, da odpreta vrata za pošiljanje in prejemanje informacij. Zdaj so ta vrata ena za drugo blokirana in jih ni mogoče uporabiti za tretji stroj.

Za rokovanje HTTP protokol pošlje in prejme nekaj dodatnih bajtov samo za potrditev, ali je vrata na obeh napravah brezplačno in pridobi podrobnosti o vratih. Ti dodatni bajti so režijski stroški, kadar je potrebna pogosta izmenjava informacij. Zato WebSocket.

Kdaj uporabljati WebSocket in kdaj ne?

Daleč je očitno, da je WebSocket uporaben le, kadar je potrebna pogosta izmenjava informacij. WebSocket zagotavlja dvostransko povezavo. To pomeni, da se informacije lahko pošiljajo in prejemajo hkrati. To očitno prihaja do stroškov blokade pristanišča do izmenjave informacij o času. Uporaba WebSocket je torej kompromis med shranjevanjem ključnih bajtov in omogočanjem hitrejših pogovorov s ceno daljšega blokiranja vrat.

Najboljši primer WebSocket je, ko podatke v realnem času potrebujete zelo hitro, kot so cene delnic. Cene delnic se vsako sekundo spreminjajo. Torej bi uporaba HTTP izgubila ključni čas pri nepotrebnem stiskanju rok in kotacije bi postale zastarele. Namesto tega uporabite WebSocket in to naredite hitreje.

Če si lahko privoščite nekaj milisekund zamude pri iskanih informacijah, morate iti za HTTP.

Kako je nastal WebSocket?

V svojih prvih dneh je bil internet velikanska mreža strani, ki je vsebovala besedilne informacije. To so bile večinoma statične strani, kar je pomenilo, da so informacije konstantne in se niso spreminjale pri poznejših iskanju. Sčasoma je bogata vsebina, kot so slike, postala nepogrešljiv del spletnih strani. Strani so postale tudi dinamične, kar je pomenilo, da lahko zdaj informacije na straneh ustvarjajo na podlagi poizvedb.

To je vodilo do napredka v tehnologijah z izumom Dynamic HTML, JavaScript itd. Vsi so bili zelo napredni, vendar so uporabljali protokole HTTP. Težava s protokoli HTTP - povezava ni bila dvostranska. Komunikacija je bila enosmerna. V vsakem trenutku lahko odjemalec pošlje zahtevo strežniku ali pa strežnik lahko odgovori.

To je omogočilo protokole WebSocket, ki omogočajo povezavo v polni dupleks za izboljšanje uporabniške izkušnje.

Razumevanje izraza „Full-Duplex“

Izraz full-duplex naletimo že precej. Kaj to dejansko pomeni?

V HTTP zahtevo vedno sproži stranka. To pomeni, da strežnik ne bo odgovoril, če stranka ne bo poslala zahteve. Zaradi tega je komunikacija enosmerna.

Medtem ko sta v odjemalcu WebSocket, tako odjemalec kot strežnik lahko hkrati pošiljata sporočila drug drugemu. Stranki ni treba vložiti zahteve vsakič, ko zahteva nekaj odziva. Zaradi tega je povezava dvosmerna.

Zdaj je za dosego dvosmernosti treba pomisliti, da se v vsakem trenutku vzdržujeta dve povezavi. Tu je WebSocket drugačen. WebSocket to stori prek ene same povezave TCP. To se imenuje kot povezava v polni dupleks, kar pomeni dvosmerno komunikacijo po enem kanalu.

Atributi, dogodki in metode WebSocket

Ustvarimo povezavo WebSocket. Naslednji ukaz to naredi za nas:

var Socket = nov WebSocket (URL, (protocal));

Nova metoda WebSocket je izpostavljena metoda API, ki vrne vzpostavljeno povezavo z URL-jem, ki je določen kot prvi parameter in se drži neobveznega parametra protokola.

1. Atributi

Ko je povezava vzpostavljena, imamo v našem objektu Socket naslednje atribute:

jaz. Socket.readyState

Atribut samo za branje, ki pove stanje povezave.
0 - Povezava še ni vzpostavljena.
1 - Povezava je vzpostavljena in komunikacija je mogoča.
2 - Povezava poteka skozi stisk roke.
3 - Povezava je zaprta ali je ni bilo mogoče odpreti.

ii. Socket.bufferedAmount

Atribut samo za branje, ki pove število bajtov, ki so na vrsti z metodo send ().

2. Dogodki

jaz. Socket.onOdpri

Dogodek, ki se sproži, ko se odpre povezava.

ii. Socket.onMessage

Dogodek se sproži, ko odjemalec prejme sporočilo od strežnika.

iii. Socket.onError

Dogodek je sprožil napako v komunikaciji.

iv. Socket.onClose

Dogodek se sproži, ko je povezava zaprta.

3. Metode

jaz. Socket.send (podatki)

Način pošiljanja podatke prenaša s povezavo.

ii. Socket.close ()

Ta metoda prekine obstoječo povezavo.

Primer

var socket = new WebSocket(“ ws://echo.websocket.org ”);
if (socket.readyState === WebSocket.OPEN)(
socket.send(“Hello World”);
)
if (socket.readyState === WebSocket.OPEN)(
socket.close( );
)

Primer resničnega sveta

StackOverflow je zelo priljubljeno spletno mesto, ki uporablja WebSocket za pošiljanje obvestil, kadar je na vprašanje na voljo nov odgovor.

Priporočeni članek

To je vodnik za Kaj je WebSocket? Tu smo razpravljali o pojmih, definiciji, atributih WebSocket, dogodkih in metodah WebSocket. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Ali je Hadoop Open Source?
  2. Kaj je Java Dediščina?
  3. Kaj je Multithreading v C #?
  4. Kaj so spletne storitve ASP.Net?
  5. Ustvarjanje in metode večtirne izdelave v C #