Developer

Eenvoudige realtime-communicatie: een gids voor webhooks en WebSockets

Webhooks en WebSockets gebruiken om toepassingen en integraties te bouwen die gebruikmaken van de videogebaseerde communicatieoplossingen van Zoom.
4 minuten lezen

Bijgewerkt op January 26, 2023

Gepubliceerd op January 25, 2023

WebSockets and webhooks

Wat zijn webhooks en WebSockets?

Webhooks en WebSockets zijn belangrijke onderdelen van moderne toepassingen, omdat ze belangrijke diensten voor meldingen van gebeurtenissen leveren. Met zowel webhooks als WebSockets kan je in realtime meldingen ontvangen over gebeurtenissen in uw Zoom-account. Ze ondersteunen ook toepassingen die moeten reageren op veranderingen of updates zodra die plaatsvinden. Er zijn echter enkele belangrijke verschillen tussen webhooks en WebSockets die je niet moet vergeten wanneer je beslist welke het beste past bij jouw gebruiksscenario. Denk hierbij aan de eenvoud van implementatie, snelheid van levering, betrouwbaarheid, architectuur en andere factoren.

Webhooks en WebSockets vergelijken

Protocollen en eenvoud van implementatie

Webhooks gebruiken het HTTP-protocol, terwijl WebSockets het WebSocket-protocol (ws of wss) gebruiken. Om die reden zijn webhooks in het algemeen eenvoudiger te implementeren, omdat ze alleen een eindpunt-URL nodig hebben om HTTP POST-verzoeken te ontvangen. Voor WebSockets is een complexere implementatie nodig, inclusief het verkrijgen van een toegangstoken en het verbinding maken met een server.

Snelheid van levering

WebSockets zijn in het algemeen sneller qua levering dan webhooks, omdat ze een tweeledig communicatiekanaal bieden. Met WebSockets kan een enkele verbinding tot stand worden gebracht tussen een client en een server, waardoor gegevens in realtime kunnen worden uitgewisseld zonder dat er extra HTTP-verzoeken nodig zijn. Vergeleken met webhooks kan een betrouwbare verbinding resulteren in een snellere levering van gebeurtenismeldingen en efficiënter gebruik van middelen.

Betrouwbaarheid

Bij het evalueren van opties voor communicatie op basis van gebeurtenissen is betrouwbaarheid cruciaal. Webhooks sturen een melding naar een specifieke URL wanneer zich een gebeurtenis voordoet. Als het eindpunt echter problemen ondervindt, wordt de melding van de gebeurtenis mogelijk niet correct verwerkt. WebSockets onderhouden daarentegen een constante verbinding met de server, waardoor consistentere en betrouwbaardere communicatie mogelijk is.

Architectuur

Webhooks zijn gebaseerd op een 'push'-model, waarbij Zoom gebeurtenismeldingen naar eindpunten pusht als ze zich voordoen. WebSockets zijn gebaseerd op een 'pull'-model, waarbij de client een verbinding opzet met de server en vervolgens gebeurtenismeldingen ontvangt als die zich voordoen.

Stateless tegenover stateful

Webhooks zijn stateless, wat betekent dat elke gebeurtenismelding onafhankelijk is en alle noodzakelijke informatie over de gebeurtenis bevat. WebSockets zijn stateful, wat betekent dat de client en de server een constante verbinding onderhouden en statusinformatie kunnen delen gedurende de levensduur van de verbinding.

Gebruiksscenario

Webhooks kunnen een betere oplossing zijn als een toepassing slechts een klein aantal gebeurtenismeldingen hoeft te ontvangen. Stel je voor dat je een marktplaats-app hebt die een melding moet ontvangen wanneer een gebruiker een vergadering aanmaakt, bijwerkt of verwijdert. In dit geval komen webhooks goed van pas, omdat de app slechts een klein aantal gebeurtenismeldingen hoeft te ontvangen (bijv. een melding bij vergadergerelateerde gebeurtenissen). Het opzetten van een eenvoudig eindpunt om deze meldingen via webhooks te ontvangen, is efficiënter dan het implementeren van WebSockets.

WebSockets kunnen een goede optie zijn voor wie toepassingen ontwikkelt in sectoren als het bankwezen, de financiële sector en de gezondheidszorg. Bij het implementeren van webhooks moet een ontwikkelaar extra inspanningen leveren om het eindpunt te beveiligen, zoals het valideren van het verzoek en het toestaan van de IP-adressen. Aan de andere kant hebben WebSockets een extra beveiligingslaag, omdat de verbinding rechtstreeks tussen de client en de server tot stand wordt gebracht, wat het risico op aanvallen door tussenpersonen vermindert. WebSockets bieden een meer betrouwbare verbinding, omdat gegevens alleen worden overgedragen wanneer de verbinding wordt geopend en open blijft totdat deze door de ontwikkelaar wordt gesloten. Een ander interessant feitje over Zoom WebSockets is dat de verbinding alleen kan worden geopend door het toegangstoken dat is gegenereerd door de toepassing die het WebSocket-abonnement heeft aangemaakt. Daarnaast kan er maar één verbinding tegelijk open worden gehouden. Een van de belangrijkste voordelen van WebSockets die webhooks niet aanbieden, is dat ze realtime-communicatie met een lage latentie mogelijk maken, wat essentieel is voor gebruiksscenario's waar realtime-updates van doorslaggevend belang zijn.

Cruciale hulpmiddelen voor boeiende ervaringen

WebSockets en webhooks zijn cruciale hulpmiddelen voor het bouwen van interactieve toepassingen op het web, omdat ze naadloze en efficiënte updates, lage latentie, kostenefficiëntie en schaalbaarheid bieden. Bij Zoom gebruiken we deze technologieën om boeiende en intuïtieve gebruikerservaringen te creëren. Of je nu een app voor klantenbetrokkenheid of een bewakingssysteem bouwt, deze melders van gebeurtenissen zijn van doorslaggevend belang om alles uit jouw toepassing te kunnen halen.

Om je op weg te helpen, hebben we documentatie opgesteld voor zowel webhooks als WebSockets (bèta). Schrijf je in voor de bètaversie van WebSockets door dit formulier in te vullen voor vroegtijdige toegang tot deze nieuwe functie.

Our customers love us

Okta
Nasdaq
Rakuten
Logitech
Western Union
Autodesk
Dropbox
Okta
Nasdaq
Rakuten
Logitech
Western Union
Autodesk
Dropbox

Zoom - One Platform to Connect