Er worden verschillende protocollen gebruikt om gegevens van de client naar de server en omgekeerd over te dragen. Hun regels zijn beschreven in de relevante normen. In dit artikel bespreken we één protocol voor gegevensoverdracht - WebSockets.
Wat is een WebSocket-protocol?
WebSocket is een geavanceerde technologie om een verbinding tot stand te brengen tussen een client en een server (browser en server) en onderlinge communicatie in real time mogelijk te maken. Het belangrijkste verschil met WebSocket is dat je gegevens kunt ontvangen zonder een apart verzoek te hoeven sturen, zoals bijvoorbeeld bij HTTP gebeurt. Nadat de verbinding tot stand is gebracht, komen de gegevens vanzelf, zonder dat het verzoek hoeft te worden verstuurd. Dit is het voordeel van het gebruik van het WebSocket-protocol bij chats of aandelenrapporten, waarbij u voortdurend bijgewerkte informatie moet ontvangen. Het protocol kan tegelijkertijd informatie ontvangen en verzenden, waardoor full-duplex bidirectionele communicatie mogelijk is, wat resulteert in snellere informatie-uitwisseling.
Hoe werkt WebSockets?
De verbinding tussen client en server blijft open totdat deze door een van de partijen wordt verbroken of door een time-out wordt gesloten. Ze voeren een handshake uit om een verbinding tussen de client en de server tot stand te brengen. Een opgezette verbinding blijft open, en de communicatie verloopt via hetzelfde kanaal totdat de verbinding aan client- of serverzijde wordt verbroken. Berichten worden in twee richtingen uitgewisseld. Met WebSocket kunnen gegevens die worden verzonden, worden gecodeerd. Hiervoor wordt een add-on gebruikt over het WSS-protocol, die de gegevens aan de kant van de verzender codeert en aan de kant van de ontvanger decodeert. Voor eventuele tussenpersonen blijft de informatie versleuteld. Zonder versleuteling worden gegevens een doelwit voor bedreigingen.
Wanneer WebSocket gebruiken?
Het WebSocket-protocol is ideaal wanneer u real-time gegevensupdates en de mogelijkheid om berichten naar de client te sturen nodig hebt. Hier zijn enkele van de meer wijdverbreide use cases voor web sockets:
- uitwisselingsplatforms;
- gaming toepassingen;
- chatbots;
- pushmeldingen;
- sociale netwerken;
- chat-toepassingen;
- IoT-toepassingen.
Waarom overwegen om het WebSocket-protocol te gebruiken?
WebSocket biedt real-time updates door een verbinding tussen de server en clients te bieden. Web sockets zijn compatibel met HTML5 en bieden achterwaartse compatibiliteit met oudere HTML-versies. Daarom worden ze ondersteund door alle moderne webbrowsers - Google Chrome, Mozilla Firefox, Safari, en anderen. Ze zijn ook compatibel met alle platforms: Android, iOS, web apps en desktop apps. Een enkele server kan meerdere WebSocket-verbindingen tegelijk open hebben en zelfs meerdere verbindingen met dezelfde client, waardoor gemakkelijk geschaald kan worden.
Hoe maak je een WebSocket aan in AppMaster.io?
Laten we een WebSocket aanmaken in AppMaster.io aan de hand van een eenvoudig chatbotvoorbeeld. Om een WebSocket aan te maken, moet je in de applicatiebackend een bedrijfsproces aanmaken dat zal reageren op berichten van gebruikers en antwoorden zal versturen: Backend > Bedrijfsprocessen.
Het bedrijfsproces ontvangt een bericht en stuurt, afhankelijk van de inhoud, een string terug als antwoord.
Als het bericht = "Hi!", dan zal het antwoord "Hello!" zijn;
Als het bericht = "Hoe gaat het met je?", dan zal de BP de string "Geweldig! Hoe gaat het met jou?";
In elk ander geval zal de BP werken als een echo en als antwoord dezelfde string teruggeven die hij bij de invoer heeft ontvangen.
Vervolgens moet je een WebSocket Endpoint aanmaken voor dit BP om te communiceren met de bot: Backend > Endpoints > New Endpoint > WebSocket Endpoint.
In het nieuw geopende venster vul je de volgende velden in:
- Type eindpunt: GET
- Endpoint URL: het adres waarop het endpoint van buitenaf wordt benaderd;
- Business Process: geeft de BP aan die op dit WS Endpoint zal werken;
Na het instellen van het endpoint, moet u de applicatie publiceren om het te gebruiken.
U kunt WebSocket de Postman app testen. Gedetailleerde instructies over het gebruik van Postman vindt u hier. Na autorisatie in Postman, moet u een nieuw WebSocket verzoek aanmaken: Nieuw > WebSocket Verzoek.
Voer het volledige WebSocket adres in. U kunt het krijgen in Swagger(Preview > Development) door een leeg verzoek te sturen naar het aangemaakte Endpoint. Het volledige adres is te vinden in het blok Request URL.
Na het kopiëren en plakken in het juiste veld in Postman, moet u https vervangen door wss, omdat dit protocol wordt gebruikt om met de server te communiceren. WebSocket-verbinding vereist autorisatie. Daarvoor moet je een verzoek sturen met een header (kop) Cookie, die het toegangstoken gen_app_auth_token= bevat. Om een token te krijgen, moet je autoriseren door het authorization endpoint uit te voeren en je gebruikersnaam en wachtwoord door te geven.
U kunt het Cookie als volgt handmatig vinden:
- in een gepubliceerde webapplicatie in een browser, druk op F12 om naar de ontwikkelaarstool te gaan;
- ga naar Netwerk en schakel naar het tabblad Headers;
- zoek in de sectie Request Headers de Cookie en kopieer de waarde.
Door een Cookie waarde toe te voegen aan de request header naar WebSocket in Postman en te klikken op Connect, kun je controleren of de verbinding met WS succesvol tot stand is gekomen.
Het resultaat van een geslaagde verbinding wordt hieronder getoond:
Je kunt een bericht sturen in het blok Nieuw bericht, maar het moet JSON-geformatteerd zijn. Als je de string "Hello" wilt versturen, dan ziet het bericht er als volgt uit: {"message": "Hi"}. In dit geval moet de naam van de sleutel (d.w.z. bericht) overeenkomen met de naam van de variabele bij de BP-invoer.
Resultaat van de vraaguitvoering:
Zo kan in AppMaster.io een WebSocket worden aangemaakt. Bekijk meer nuttige informatie over het werk op het platform in ons Helpcentrum.