Werking van de WebSocket-testclient
De WebSocket-testclient is een hulpmiddel waarmee ontwikkelaars, integratie-engineers, QA-personeel en systeembeheerders handmatig verbinding kunnen maken met een openbaar toegankelijk WebSocket-eindpunt. De tool maakt het mogelijk om een verbinding op te zetten met een WebSocket-server, tekstberichten te verzenden en een chronologisch logboek van alle verzonden en ontvangen berichten bij te houden.
Tijdens de sessie toont de client de actuele verbindingsstatus, inclusief het moment waarop de verbinding wordt geopend of gesloten. Bij het verbreken van de verbinding geeft de tool gedetailleerde informatie weer over de WebSocket-sluitcode en de specifieke reden die door de server is opgegeven. Dit maakt het analyseren en debuggen van real-time datastromen direct uitvoerbaar vanuit de browser.
Protocollen en beveiliging: ws:// versus wss://
WebSockets maken bidirectionele communicatie over een enkele TCP-verbinding mogelijk. Hierbij worden twee verschillende URI-schema's gebruikt: ws:// (onversleuteld) en wss:// (beveiligd via TLS/SSL).
Bij het testen van WebSockets gelden strikte regels voor het adres dat in het veld WebSocket-adres wordt ingevoerd:
- De tool ondersteunt uitsluitend de schema's
ws://enwss://. Als er een ander schema wordt gebruikt, toont de client de foutmelding: "Gebruik een ws:// of wss:// adres". - Als het ingevoerde adres incompleet is, verschijnt de melding: "Voer een volledig WebSocket-adres in, bijvoorbeeld wss://example.com/socket".
- De maximale lengte van het adres is gelimiteerd tot 2.048 tekens. Bij overschrijding hiervan toont de interface de waarschuwing: "Dat adres is ongewoon lang. Bewaar het onder 2,048-tekens".
De verbinding met de server start pas op het moment dat de gebruiker actief kiest voor Verbinden. Tijdens de verbindingspoging toont de client de status "Verbinding maken met ‹address›…". Indien de server de verbinding niet binnen een tijdslimiet van 10 seconden opent, wordt het proces afgebroken met de melding: "De server heeft de verbinding niet binnen 10 seconden geopend".
Berichten verzenden en limieten
Zodra de verbinding succesvol tot stand is gebracht, kan de gebruiker handmatig tekstberichten invoeren in het veld Bericht.
Voor het verzenden van berichten gelden de volgende interactieregels en limieten:
- Verzenden: Berichten kunnen worden verzonden door te klikken op de verzendknop of door gebruik te maken van de sneltoetsen Ctrl+Enter of Command+Enter. Er kan één tekstbericht per keer worden verstuurd.
- Grootte: Een bericht mag maximaal 100.000 tekens bevatten. Als een bericht deze limiet overschrijdt, weigert de client de verzending en toont de foutmelding: "Die boodschap is ongewoon groot. Bewaar het onder 100,000-tekens".
- Statuscontrole: Het is niet mogelijk om berichten te verzenden zonder actieve verbinding. Indien men dit toch probeert, verschijnt de melding: "Maak verbinding voordat u een bericht verzendt".
Het berichtenlogboek en datatypes
Het Berichtenlogboek houdt alle gebeurtenissen en datatransfers chronologisch bij. De interface maakt hierbij onderscheid tussen verschillende typen invoer en datatypes:
| Logtype | Label / Weergave | Omschrijving |
|---|---|---|
| Verzonden | Verzonden | Geeft aan dat een bericht vanaf de client is verstuurd. |
| Ontvangen | Ontvangen | Geeft aan dat een bericht door de client is ontvangen. |
| Evenement | Evenement | Geeft een verbindingsgerelateerde gebeurtenis aan. |
| Tekstbericht | Tekst | Label voor reguliere tekstberichten. |
| Binair bericht | Binair bericht (‹grootte› bytes) |
Label voor binaire data, waarbij de exacte grootte in bytes wordt vermeld. |
Om de prestaties en de reactiesnelheid van de browserpagina te waarborgen, past de tool automatische limieten toe op de weergave:
- Logboekgrootte: Het logboek behoudt maximaal 500 regels. Zodra dit aantal wordt overschreden, worden oudere regels verwijderd en verschijnt de melding: "
‹count›oudere loggegevens zijn verwijderd om deze pagina responsief te houden.". - Berichtgrootte in weergave: Individuele logregels tonen maximaal 20.000 tekens. Langere berichten worden afgebroken met de melding: "
‹count›Er zijn meer tekens verborgen in dit voorbeeld.". - Wissen: De knop Logboek wissen verwijdert de momenteel weergegeven regels uit de interface. Dit heeft geen invloed op de actieve verbinding en reset de berichtentellers niet.
Verbindingsbeëindiging en sluitcodes
Wanneer een WebSocket-verbinding wordt gesloten, toont het logboek de gebeurtenis "Gesloten met code ‹code› (‹clean›). Reden: ‹reason›". De sluitingsstatus van de verbinding kan "schoon" of "niet schoon" zijn.
De client geeft de numerieke sluitcode weer die de exacte reden van de verbreking identificeert. Als de server bij het sluiten geen specifieke tekstuele verklaring meestuurt, vult de tool dit aan met de tekst "Geen reden opgegeven".
Als een verbinding volledig mislukt, toont de client de foutmelding: "De verbinding is mislukt. Controleer het adres, het certificaat, de serverbeschikbaarheid en de browsertoegangsregels".
Technische beperkingen van browsergebaseerde clients
Omdat deze testclient rechtstreeks binnen de sandbox van de webbrowser draait, gelden er enkele onvermijdelijke technische beperkingen die inherent zijn aan de Web API-specificatie van browsers:
- Geen aangepaste headers: De tool kan geen aangepaste handshake-headers (zoals extra HTTP-headers voor autorisatie) toevoegen aan het initiële verbindingsverzoek.
- Geen certificaat-bypass: Het is niet mogelijk om ongeldige of verlopen SSL/TLS-certificaten te negeren of te omzeilen via de client.
- Toegangsregels: De client kan de CORS- of Same-Origin-beperkingen en andere toegangsregels van de server niet overrulen.
- Netwerkniveau: De tool heeft geen toegang tot netwerkfragmenten of de onderliggende Ping- en Pong-besturingsframes die worden gebruikt om de verbinding in stand te houden.
Privacy en gegevensverwerking
Bij het testen van WebSockets is databeveiliging een belangrijk aspect. Er wordt niets geüpload naar BroBroGo of opgeslagen door deze pagina. Alle invoer, inclusief het WebSocket-adres en de verzonden berichten, gaat rechtstreeks vanuit de eigen browser naar de gekozen WebSocket-server.
Aangezien de gegevens rechtstreeks naar de ingevoerde server worden verzonden, heeft deze pagina geen invloed op de log- of retentieregels van die externe server. Het wordt daarom aangeraden om persoonlijke identificatiegegevens en gevoelige juridische, financiële of gezondheidsinformatie te verwijderen alvorens verbinding te maken.
Veelgestelde vragen
Welke WebSocket-gegevens kan ik hier inzien?
U kunt elk tekst- of binair bericht zien dat door uw browser wordt weergegeven, de richting, tijd en grootte ervan, plus de uiteindelijke sluitcode, reden en opschoningsstatus. Browserpagina's kunnen geen fragmenten op netwerkniveau of Ping- en Pong-besturingsframes weergeven.
Waarom mislukt een verbinding, zelfs als het adres elders werkt?
Op een beveiligde pagina heeft de browser mogelijk wss:// nodig. De server moet ook browserverbindingen en de oorsprong van de pagina accepteren. Deze client kan geen aangepaste handshake-headers toevoegen, certificaatfouten omzeilen of de toegangsregels van de server overschrijven.
Kan ik testen met productie- of gevoelige gegevens?
Maak waar mogelijk gebruik van synthetische data. Verwijder namen, accountgegevens, juridische gegevens, financiële informatie en gezondheidsinformatie voordat u deze verzendt. Berichten gaan naar de server die u kiest, waarvan de regels voor loggen en bewaren buiten de controle van deze pagina vallen.