Шта је ВебСоцкет?

Замислите како пишете е-пошту пријатељу или колеги. Увек започнете са Поздрав, након чега слиједи контекст и заврши захвалницом. Сада замислите исто да и ви и ваш пријатељ / колега разговарате лицем у лице. Да ли бисте и даље сваки свој текст започели са Поздрав и завршили са хвала? Велики НЕ, зар не? То практично резимира ХТТП и ВебСоцкет.

Техничко разумевање ВебСоцкет-а

ВебСоцкет је двосмерни протокол комуникације. Омогућава потпуно дуплекс везу. Да разумемо колико су ови појмови значајни.

Осврћући се на наш пример е-поште и разговоре лицем у лице, поруке е-поште означавају ХТТП протокол, док разговори лицем у лице означавају протокол ВебСоцкет. То не значи да се поруке е-поште шаљу преко ХТТП протокола, не. Е-поруке углавном користе СМТП протоколе, али за сада се не бринемо о томе. Суштински корак из примјера је отварање и затварање основне везе између двије стране које размјењују информације.

ХТТП размјењује информације отварајући нову везу у сваком циклусу одговора на захтјев. Тако сваки пут кад пошаљете захтев или примите одговор, ХТТП успоставља нову везу. Замислите везу као једноставно сигурну линију за пренос информација. Чим се доставе ваше информације, ХТТП прекида везу.

ВебСоцкет држи везу отвореном за вас тако да можете размењивати информације преко исте линије док неко од вас не прекине везу.

Мало више техничког…

Ок, схваћам све о томе да је веза отворена. Како ми помаже? Не осећам разлику да ли шаљем е-пошту или шаљем поруке.

Управу си. Као крајњег корисника, разлика вам није видљива. Размислимо као програмер апликација. Када кажем отворити сигурну линију за размену информација, у њој је укључен процес. То се обично назива руковање руком. То је процес у којем се обе машине укључене у разговор слажу да отворе порт за слање и примање информација. Ови портови су блокирани један за другог и не могу се користити за трећу машину.

За руковање рукама, ХТТП протокол шаље и прима неке додатне бајтове само да потврди да ли је порт слободан у обе машине и дохваћа детаље порта. Ови додатни бајтови су надземни трошкови када је потребна честа размена информација. Отуда и ВебСоцкет.

Када користити ВебСоцкет, а када не?

Далеко је очигледно да је ВебСоцкет користан само када је потребна честа размена информација. ВебСоцкет пружа двоструку везу. То значи да се информације могу истовремено слати и примати. То очигледно долази по цени блокирања порта до размене информација о времену. Дакле, коришћење ВебСоцкет-а представља компромис између спремања кључних бајтова и омогућавања бржих разговора по цени дужег блокирања порта.

Најбољи начин коришћења ВебСоцкет-а је када вам подаци у реалном времену требају врло брзо, као што су цене акција. Цијене акција мијењају се сваке секунде. Дакле, коришћење ХТТП-а изгубило би кључно време у непотребном руковању, а цитати би постали неисправни. Уместо тога, користите ВебСоцкет и учините то брже.

Супротно томе, ако можете да приуштите одлагање од неколико милисекунди тражених информација, морате да потражите ХТТП.

Како је настао ВебСоцкет?

У својим првим данима Интернет је био џиновска мрежа страница које су садржавале текстуалне информације. То су углавном биле статичке странице, што је значило да су информације константне и нису варирале с накнадним проналажењима. Временом је богат садржај попут слика постао неизоставни део веб страница. Странице су такође постале динамичне, што је значило да се сада информације на страницама могу генерисати на основу упита.

То је довело до напретка у технологији са изумом Динамиц ХТМЛ-а, ЈаваСцрипт-а итд. Сви су били веома напредни, али су користили ХТТП протоколе. Проблем са ХТТП протоколима - веза није била двострана. Комуникација је била двосмерна. У било којем тренутку клијент може послати захтев на сервер или сервер може одговорити.

Ово је уступило место ВебСоцкет протоколима који омогућавају фулл-дуплек везу како би се побољшало корисничко искуство.

Разумевање израза „Фулл-Дуплек“

Прилично смо наишли на термин фулл-дуплек. Шта ово заправо значи?

На ХТТП-у захтев увек покреће клијент. То значи да ако клијент не пошаље захтев, сервер неће одговорити. Ово чини комуникацију једносмерном.

Док су у ВебСоцкет-у, и клијент и сервер могу истовремено гурати поруке једни другима. Клијент не мора да поднесе захтев сваки пут када захтева неки одговор. Ово чини везу двосмерном.

Да би се постигла двосмерност, мора се помислити да постоје две везе у сваком тренутку. Овде је ВебСоцкет другачији. ВебСоцкет то ради преко једне ТЦП везе. То се назива фулл-дуплек везом, што значи двосмерна комуникација преко једног канала.

Атрибути, догађаји и методе ВебСоцкет

Направимо везу са ВебСоцкет-ом. Следећа команда ово ради за нас:

вар Соцкет = нови ВебСоцкет (УРЛ, (протоцал));

Нова ВебСоцкет метода је изложени АПИ метод који враћа успостављену везу са УРЛ-ом наведеним као први параметар и придржава се опционалног параметра протокола.

1. Атрибути

Једном када је веза успостављена, у нашем објекту Соцкет имамо следеће атрибуте:

ја. Соцкет.реадиСтате

Атрибут само за читање који говори о стању везе.
0 - Веза још увек није успостављена.
1 - веза је успостављена и комуникација је могућа.
2 - Веза иде кроз руковање.
3 - Веза је затворена или се не може отворити.

ии. Соцкет.буффередАмоунт

Атрибут само за читање који говори о броју бајтова који су постављени у ред помоћу методе сенд ().

2. Догађаји

ја. Соцкет.онОпен

Догађај покренут када се веза отвори.

ии. Соцкет.онМессаге

Догађај се покреће када клијент прими поруку од сервера.

иии. Соцкет.онЕррор

Догађај је покренуо грешку у комуникацији.

ив. Соцкет.онЦлосе

Догађај се покренуо када је веза затворена.

3. Методе

ја. Соцкет.сенд (подаци)

Метода слања преноси податке користећи везу.

ии. Соцкет.цлосе ()

Овом методом се прекида постојећа веза.

Пример

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

Пример реалног света

СтацкОверфлов је веома популарна веб локација која користи ВебСоцкет за слање обавештења кад год је нови одговор на питање доступан.

Препоручени чланак

Ово је водич за шта је ВебСоцкет? Овде смо разговарали о појмовима, дефиницији, атрибутима ВебСоцкет-а, догађајима и методама ВебСоцкет-а. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Да ли је Хадооп Опен Соурце?
  2. Шта је наслеђивање Јава?
  3. Шта је Мултитхреадинг у Ц #?
  4. Шта је АСП.Нет Веб Сервицес?
  5. Стварање и методе мултитхреадинг-а у Ц #

Категорија: