Webhooks un WebSockets ir divas tīmekļa izstrādes tehnoloģijas, kuras cilvēki bieži sajauc. Daudzas mūsdienu tīmekļa lietojumprogrammas izmanto gan Webhooks, gan WebSockets. Lai gan Webhooks un WebSockets ir diezgan atšķirīgi, tie risina saziņu tīmekļa lietojumprogrammās.

Tātad, kas ir Webhooks un WebSockets? Ar ko tās atšķiras?

Kas ir tīmekļa aizķeres un kā tās darbojas?

Tīmekļa aizķeri var uzskatīt par “notikuma aktivizētu HTTP pieprasījumu”. Ko tas nozīmē? Tīmekļa aizķere ir HTTP atzvanīšanas darbība, ko parasti aktivizē notikums serverī. Tas vēl nav viss, tas parasti nosūta datus citam serverim, izmantojot iepriekš konfigurētu URL. Tas rada ideju par Webhooks kā "servera-servera" saziņas līdzekli.

Lai labāk izprastu Webhooks darbības mehānismu, apsveriet tīmekļa lietojumprogrammu, kas maksājumu saņemšanai izmanto Stripe API. Ikreiz, kad klients veic maksājumu, Stripe saņem naudu, taču jūsu lietotnei nav ne jausmas. Šeit parādās Webhooks. Apsveriet tālāk redzamo attēlu:

Stripe pieprasa norādīt Webhook galapunkta URL, lai nosūtītu klienta maksājumu datus uz jūsu serveri, kad tiek aktivizēts jauns maksājuma notikums. Pēc tam jūsu serveris saņem datus, veic ar tiem darbības un saglabā pastāvīgos datus datu bāzē.

instagram viewer

Kas ir WebSockets un kā tās darbojas?

WebSocket ir protokols, ko parasti izmantojat ar JavaScript. Tas izveido divvirzienu, pastāvīgu, divvirzienu sakaru kanālu. Tas tiek darīts vienā savienojums starp diviem TCP portiem no klienta (pārlūka) uz serveri. Populārākā WebSockets lietojumprogramma ir tērzēšanas lietojumprogrammās, piemēram, WhatsApp.

Kamēr Webhooks ir balstīti uz HTTP (t.i., tiek izmantots HTTP protokols), WebSocket ir viss protokols, kura pamatā ir TCP, tāpat kā HTTP. WebSockets var būt ļoti izdevīgs, strādājot ar zema latentuma servera-klienta datu straumēšanas lietojumprogrammām.

Izmantojot WebSocket savienojumu, varat sasniegt zemu latentumu, jo tas ir atvērts starp darījumiem, atšķirībā no noklusējuma HTTP. Tas ļauj nemanāmi plūst datiem starp abām pusēm.

Pirms WebSockets izstrādātāji izmantoja dažādas metodes reāllaika datu iegūšanai, izmantojot HTTP. Lai gan viņi pastāv jau kādu laiku, viņi cieš no ierobežojumiem.

Piemēram, ilgstošai aptaujai klientam vienmēr ir jānosūta serverim jauns pieprasījums noteiktā laika intervālā. Tas nozīmē, ka tad, kad serverī ir jauni dati, tas tos atgriež. Bet, ja tā nav, pieprasījums tiek faktiski izšķiests.

Atšķirībā no Webhooks, katrs WebSocket savienojuma gals var nosūtīt datus uz otru. Tas ir viens no iemesliem, kāpēc WebSockets piedāvā milzīgas ātruma priekšrocības, it īpaši, ja dati tiek sūtīti no servera uz klientu. Lietojot datus no servera, lietotnēm, kas izmanto WebSockets, vajadzētu izmantot zemu latentumu.

Varat izmantot arī WebSockets, izmantojot TLS, tāpat kā HTTP. Tas aizsargā jūsu pārsūtītos datus, palīdzot mazināt vīrieša uzbrukumi. Izmantojot šo pieeju, pat pastāvīgs savienojums būs drošs. Jums nebūs jāuztraucas par to, ka uzbrucēji nozags datus vai tos sabojās saziņa.

Kad jums vajadzētu izmantot tīmekļa aizķeres?

Webhooks un WebSockets mērķis ir ieviest labākus līdzekļus reāllaika saziņai tīmeklī. Tomēr viņi to dara pilnīgi dažādos veidos. Bieži vien var būt grūti izlemt, kuru no šīm divām tehnoloģijām izmantot savā lietojumprogrammā. Jums rūpīgi jāpievērš uzmanība viņu stiprajām un vājajām pusēm, lai redzētu, kas vislabāk atbilst jūsu prasībām.

Tātad, kad jums vajadzētu izvēlēties Webhooks, nevis WebSockets?

  • Lietojot API, kas jums nepieder. Apsveriet Stripe piemēru no iepriekšējās Webhook ilustrācijas. Stripe ir maksājumu pakalpojumu sniedzējs, un jūsu lietojumprogramma var balstīties tikai uz viņu API. Jūs nevarat kontrolēt Stripe, tāpēc jūs nevarat izveidot WebSocket serveri viņu galā. Šādos gadījumos jums vajadzētu izmantot Webhooks.
  • Ja jūsu lietotne ir serveris, kuram ir jāsazinās ar citu serveri, vislabāk ir izmantot Webhooks. Šī ir ideāla "servera-servera" sakaru sistēma.
  • Tīmekļa aizķeres nav divvirzienu vai noturīgas. Izmantojiet Webhooks tikai tad, ja jūsu lietojumprogramma negaida atbildes datus tajā pašā kanālā.
  • Jāatzīmē arī tas, ka Webhooks ir ideāls veids, kā veikt servera darbības, kas darbojas kā bezservera funkcijas. Piemēri ietver AWS Lambda un Google mākoņa funkcijas.

Varat eksperimentēt, izmantojot Webhooks webhook.site. Šajā vietnē varat redzēt, kā izskatīsies dati, ko tīmekļa aizķere nosūta uz jūsu lietojumprogrammu. Ir ļoti noderīgi izprast Web aizķeres saziņas būtību, pirms mēģināt ieviest galapunktu savā lietojumprogrammā.

Kad jums vajadzētu izmantot WebSockets?

Reāllaika lietojumprogrammas, paziņojumu sistēmas un tiešsaistes datu koplietošanas sistēmas ir dažas izplatītas WebSockets lietojumprogrammas. Paturot prātā, ka, izmantojot WebSockets, savienojuma kanālam vienmēr ir jābūt atvērtam, šis protokols ir jāizmanto tikai tad, ja izmaksas ir tā vērtas.

  • Izmantojiet WebSockets, kad jūsu lietojumprogramma nepārtraukti apmainās ar datiem starp klientu un serveri. Piemēram, tiešraidē atrašanās vietas koplietošanas lietojumprogrammā lietotāja atrašanās vieta tiek nepārtraukti atjaunināta gan serverī, gan klientā, kad viņi pārvietojas. WebSockets to padara iespējamu.
  • Multivides saziņas lietojumprogrammās, piemēram, WhatsApp, WebSocket ir ideāls saziņas protokols. Tas nodrošina ļoti ātru divvirzienu datu apmaiņu, kas ir galvenā šāda veida lietotnēm.
  • WebSockets jāizmanto arī lietojumprogrammās, kas ievieš reāllaika plūsmas, piemēram, Livescore. Šajā vietnē tiek kopīgoti tiešraides futbola spēļu atjauninājumi, kad tie notiek reāllaikā. Taču tas tiek darīts bez nepieciešamības veikt jaunus pieprasījumus vai atsvaidzināt pārlūkprogrammu.
  • Citi gadījumi, kad vajadzētu izmantot WebSockets, ietver tiešraides video/audio straumēšanas lietotnes, tiešraides paziņojumu sistēmas un reāllaika vairāku spēlētāju spēles. Tie ir noderīgi arī kopīgās rediģēšanas lietojumprogrammās, piemēram, Google dokumenti, Notion utt.

Webhooks un WebSockets ir atšķirīgi

Ir skaidrs, ka, lai gan Webhooks un WebSockets atrisina līdzīgas problēmas, tie nav vienādi, un katram ir savi lietošanas gadījumi. Tīmekļa aizķeres ir vienvirziena, notikumu izraisīti atzvani, kuru pamatā ir HTTP protokols. WebSocket tehnoloģija ir savrups protokols, kas ļauj veikt divvirzienu datu apmaiņu bez pieprasījumiem.

Veidojot lietojumprogrammu, ir svarīgi vienmēr noteikt savu vajadzību, lai izvairītos no resursu izšķērdēšanas. Dažos gadījumos jums vajadzētu dot priekšroku Webhooks, jo WebSockets dažreiz var būt dārgs. Izmantojiet tos tikai nepieciešamības gadījumā.