Mi a WebSocket? - A WebSockets módszerei és attribútumai

Tartalomjegyzék:

Anonim

Mi a WebSocket?

Képzelje el magát, ha e-mailt ír egy barátjának vagy kollégájának. Mindig Hi-val kezdődik, ezt követi a kontextus, és köszönéssel fejeződik be. Most képzelje el ugyanazt, mint te és a barátod / kollégád szemtől szemben beszélgetni. Még mindig elkezdené az egyes szövegeket Hellóval, és köszönéssel fejeződik be? Nagy NEM, igaz? Ez gyakorlatilag összefoglalja a HTTP-t és a WebSocket-t.

A WebSocket műszaki ismerete

A WebSocket egy kétirányú kommunikációs protokoll. Teljes duplex kapcsolatot biztosít. Megértjük, hogy ezek a kifejezések mennyire jelentősek.

Visszatekintve az e-mailek és a személyes beszélgetések példájára, az e-mailek a HTTP protokollt jelentik, míg a személyes beszélgetések a WebSocket protokollt jelentik. Ez nem azt jelenti, hogy az e-maileket HTTP protokollon keresztül kell küldeni, nem. Az e-mailek többnyire SMTP protokollokat használnak, de most ne aggódjunk azért. A példa alapvető eleme az információcserét végző két fél közötti kapcsolat megnyitása és bezárása.

A HTTP információcserével új kapcsolatot nyit meg minden kérés-válasz cikluson. Tehát minden alkalommal, amikor kérést küld vagy válasz érkezik, a HTTP új kapcsolatot hoz létre. Gondoljon egy kapcsolatra, mint egyszerűen biztonságos vonalra az információ átviteléhez. Amint az adatok kézbesítésre kerülnek, a HTTP bezárja a kapcsolatot.

A WebSocket nyitva tartja a kapcsolatot az Ön számára, hogy ugyanabban a vonalon tudjon információt cserélni mindaddig, amíg egyikük bezárja a kapcsolatot.

Egy kicsit technikailag…

Oké, mindent tudok arról, hogy a kapcsolat nyitva marad. Hogyan segít nekem? Nincs különbség abban, hogy e-maileket vagy csevegő üzeneteket küldök-e.

Igazad van. Végfelhasználóként a különbség nem látható Ön számára. Gondoljunk úgy, mint egy alkalmazás-fejlesztő. Amikor azt mondom, hogy nyissam meg az információcserére szolgáló biztonságos vonalat, egy folyamat részt vesz benne. Ezt általában kézfogásnak nevezik. Ez egy olyan folyamat, amelynek során a beszélgetésben részt vevő mindkét gép megállapodik egy port megnyitásáról az információk küldésére és fogadására. Most ezeket a portokat egymás ellen blokkolják, és harmadik gépeknél nem használhatók.

Kézfogáshoz a HTTP protokoll küld és fogad néhány extra bájtot annak megerősítésére, hogy egy port szabad-e mind a gépen, mind pedig a port részleteit. Ezek az extra bájt felesleges, amikor a gyakori információcserére van szükség. Ezért a WebSocket.

Mikor kell használni a WebSocket-et, mikor nem?

Nyilvánvaló, hogy a WebSocket csak akkor hasznos, ha a gyakori információcsere szükséges. A WebSocket duplex kapcsolatot biztosít. Ez azt jelenti, hogy az információkat egyszerre lehet elküldeni és fogadni. Ez nyilvánvalóan a kikötő blokkolásának költségén jár, amíg az információt nem cserélik. Tehát a WebSocket használata kompromisszum a kritikus bájt mentése és a gyorsabb beszélgetések lehetővé tétele között a port hosszabb ideig történő blokkolása árán.

A WebSocket legmegfelelőbb használata, amikor nagyon gyors valós idejű adatokra van szükség, például részvényárakhoz. A részvényárak másodpercenként változnak. Tehát a HTTP használata elveszíti a szükséges időt a felesleges kézfogásban, és az idézetek elavulnak. Ehelyett használja a WebSocket alkalmazást, és gyorsabban végezze el.

Ezzel szemben, ha megengedheti magának néhány milliszekundum késleltetést a kért információban, akkor HTTP-re kell mennie.

Hogyan jött létre a WebSocket?

A kezdeti napokban az Internet óriási szöveges információkat tartalmazó oldalak hálózata volt. Ezek többnyire statikus oldalak voltak, ami azt jelentette, hogy az információ állandó volt, és nem változott a későbbi visszakeresések során. Az idő múlásával a gazdag tartalom, például a képek a weboldalak nélkülözhetetlen részévé váltak. Az oldalak dinamikussá váltak, ami azt jelentette, hogy most az oldalakkal kapcsolatos információk lekérdezések alapján állíthatók elő.

Ez a technológiai fejlődéshez vezetett a dinamikus HTML, a JavaScript stb. Feltalálásával. Mindegyik nagyon fejlett volt, de HTTP protokollokat használt. A HTTP protokollok problémája - a kapcsolat nem volt duplex. A kommunikáció egyirányú volt. Az ügyfél bármikor kérést küldhet a szervernek, vagy a szerver válaszolhat.

Ez helyet adott a WebSocket protokolloknak, amelyek lehetővé teszik a teljes duplex kapcsolatot a felhasználói élmény fokozása érdekében.

A „teljes duplex” kifejezés megértése

Nagyon sokat találkoztunk a full-duplex kifejezéssel. Mit jelent ez valójában?

A HTTP-ben a kérést mindig az ügyfél kezdeményezi. Ez azt jelenti, hogy ha az ügyfél nem küld kérést, a szerver nem válaszol. Ez a kommunikációt egyirányúvá teszi.

A WebSocket alkalmazásban az ügyfél és a kiszolgáló egyszerre küldhet üzeneteket egymásnak. Az ügyfélnek nem kell minden alkalommal kérést tennie, amikor valamilyen válasz szükséges. Ez a kapcsolatot kétirányúvá teszi.

A kétirányúság elérése érdekében gondolkodnunk kell arról, hogy két kapcsolat fennáll minden idõpontban. Itt különbözik a WebSocket. A WebSocket ezt egyetlen TCP kapcsolaton keresztül hajtja végre. Ezt teljes duplex kapcsolatnak nevezzük, amely kétcsatornás kommunikációt jelent egyetlen csatornán keresztül.

WebSocket attribútumok, események és módszerek

Hozzunk létre egy WebSocket kapcsolatot. A következő parancs teszi ezt nekünk:

var Socket = új WebSocket (URL, (protocal));

Az új WebSocket módszer a feltárt API módszer, amely visszaadja a létrehozott kapcsolatot az első paraméterként megadott URL-lel, és csatlakozik egy opcionális protokollparaméterhez.

1. Attribútumok

Miután a kapcsolat létrejött, a következő attribútumokkal rendelkezik a Socket objektumban:

én. Socket.readyState

Csak olvasható attribútum, amely megmondja a kapcsolat állapotát.
0 - A kapcsolat még nem jött létre.
1 - A kapcsolat létrejött, és a kommunikáció lehetséges.
2 - A kapcsolat kézfogáson megy keresztül.
3 - A kapcsolat bezárva vagy nem nyitható meg.

ii. Socket.bufferedAmount

Csak olvasható attribútum, amely megmutatja a send () módszerrel sorba rendelt byte-ok számát.

2. Események

én. Socket.onOpen

Egy esemény, amely a kapcsolat megnyitásakor vált ki.

ii. Socket.onMessage

Esemény vált ki, amikor az ügyfél üzenetet kap a szerverről.

iii. Socket.onError

Az esemény hibát okozott a kommunikációban.

iv. Socket.onClose

Az esemény akkor vált ki, amikor a kapcsolat le van zárva.

3. Módszerek

én. Socket.send (adatok)

A küldési módszer az adatokat a kapcsolat segítségével továbbítja.

ii. Socket.close ()

Ez a módszer megszakítja a meglévő kapcsolatot.

Példa

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

Valódi világ példa

A StackOverflow egy nagyon népszerű webhely, amely a WebSocket segítségével értesítéseket küld, amikor új választ kap a kérdésre.

Ajánlott cikk

Ez egy útmutató a Mi a WebSocket webhelyhez? Itt megvitattuk a WebSocket fogalmait, meghatározásait, a WebSocket attribútumait, eseményeit és módszereit. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. A Hadoop nyílt forráskódú?
  2. Mi a Java öröklés?
  3. Mi a többszálú C # -ben?
  4. Mi az ASP.Net webszolgáltatások?
  5. A többszálú létrehozás és módszerek a C # -ben