Client de test WebSocket

Conectați-vă la un WebSocket, trimiteți mesaje și vizualizați mesajele trimise și primite, starea conexiunii, codul de închidere WebSocket și motivul de închidere furnizat de server.

Introduceți o adresă completă ws:// sau wss://. Conexiunea începe numai când selectați Conectare.
Introduceți o adresă WebSocket pentru a vă conecta.Închide codul
Trimite un mesaj text. Apăsați Ctrl+Enter sau Command+Enter pentru a trimite.
Jurnalul de mesaje
Trimis 0Primit 0

Conectați-vă și trimiteți un mesaj pentru a începe jurnalul.

Nimic nu este încărcat în BroBroGo sau salvat de această pagină. Adresa și mesajele dvs. ajung direct din browser la serverul WebSocket pe care îl alegeți.

Întrebări frecvente

Ce date WebSocket pot inspecta aici?

Puteți vedea fiecare mesaj text sau binar expus de browser, direcția, ora și dimensiunea acestuia, plus codul final de închidere, motivul și starea de închidere curată. Paginile de browser nu pot expune fragmente la nivel de rețea sau cadre de control Ping și Pong.

De ce eșuează o conexiune chiar și atunci când adresa funcționează în altă parte?

Pe o pagină securizată, browserul poate solicita wss://. Serverul trebuie să accepte, de asemenea, conexiuni de browser și originea paginii. Acest client nu poate adăuga anteturi personalizate de strângere de mână, nu poate ocoli erorile de certificat sau nu poate suprascrie regulile de acces ale serverului.

Pot testa cu date de producție sau sensibile?

Folosiți date sintetice ori de câte ori este posibil. Eliminați numele, detaliile contului, înregistrările juridice, informațiile financiare și informațiile de sănătate înainte de a trimite. Mesajele ajung la serverul pe care îl alegeți, ale cărui reguli de înregistrare și păstrare sunt în afara controlului acestei pagini.

Funcționarea protocolului WebSocket și rolul său în timp real

Protocolul WebSocket, definit de standardul RFC 6455, permite o comunicare bidirecțională și persistentă între un client și un server, rulând peste o singură conexiune TCP. Spre deosebire de modelul tradițional HTTP bazat pe cerere și răspuns, unde clientul trebuie să inițieze fiecare interacțiune, WebSocket permite ambelor părți să trimită date în mod independent, în orice moment. Acest comportament reduce semnificativ latența și volumul de date transferat, eliminând necesitatea tehnicilor de tip polling.

Instrumentul „Client de test WebSocket” este conceput pentru a facilita testarea și depanarea acestor conexiuni direct din browser. Acesta este utilizat în mod frecvent de dezvoltatori care lucrează cu API-uri în timp real, ingineri de integrare, personal de asigurare a calității (QA) și echipe de operațiuni (Ops). Utilitatea sa principală constă în capacitatea de a stabili manual o conexiune la un punct terminal WebSocket accesibil public, de a trimite mesaje text și de a monitoriza în timp real fluxul de date trimise și primite.

Securitatea conexiunilor: Diferențele dintre ws:// și wss://

La fel ca în cazul protocolului HTTP, WebSocket utilizează două scheme de adresare distincte care definesc nivelul de securitate al canalului de comunicare:

  • ws:// (WebSocket): Reprezintă conexiunea standard, necriptată. Datele sunt transmise în text clar prin TCP, fiind expuse interceptării și modificării pe traseul dintre client și server.
  • wss:// (WebSocket Secure): Reprezintă conexiunea criptată, care utilizează un strat TLS/SSL peste conexiunea TCP. Aceasta asigură confidențialitatea și integritatea datelor transmise, prevenind atacurile de tip man-in-the-middle.

Aplicația acceptă exclusiv schemele ws:// și wss://. Dacă se introduce o adresă care utilizează o altă schemă de protocol, interfața va afișa mesajul de eroare: „Utilizați o adresă ws:// sau wss://”. De asemenea, adresa introdusă trebuie să fie completă; în caz contrar, utilizatorul este întâmpinat cu avertismentul „Introduceți o adresă WebSocket completă, cum ar fi wss://example.com/socket”.

Ciclul de viață al conexiunii și gestionarea erorilor

O conexiune WebSocket trece prin mai multe stări bine definite, de la inițiere până la închidere:

  1. Conectare: Procesul începe doar în momentul în care utilizatorul acționează butonul de conectare. În timpul tentativei de stabilire a legăturii, interfața afișează starea „Se conectează la ‹address›...”.
  2. Conexiune activă: Dacă strângerea de mână (handshake) reușește, starea devine „Conectat la ‹address›.”, iar în jurnalul de mesaje se adaugă evenimentul „Conectat la ‹address›.”.
  3. Închidere: Când conexiunea se întrerupe sau este oprită manual, se înregistrează un eveniment de tipul „Inchis cu codul ‹code› (‹clean›). Motiv: ‹reason›”.
[Client] ---- Cerere Handshake (ws:// sau wss://) ----> [Server]
[Client] <--- Răspuns Handshake (Conexiune deschisă) -- [Server]
[Client] <======== Flux bidirecțional de date ========> [Server]
[Client] <---- Cadru de închidere (Cod & Motiv) ------> [Server]

În timpul acestui ciclu de viață pot apărea diverse probleme de rețea sau de configurare. Dacă serverul nu răspunde în timp util la inițierea conexiunii, după un interval de 10 secunde instrumentul va afișa eroarea „Serverul nu a deschis conexiunea în 10 secunde”. În cazul în care conexiunea eșuează complet din alte cauze, se va afișa mesajul „Conexiunea a eșuat. Verificați adresa, certificatul, disponibilitatea serverului și regulile de acces la browser”.

Transmiterea mesajelor: Text versus Binar

Protocolul WebSocket face o distincție clară între mesajele de tip text (codificate UTF-8) și mesajele binare (cum ar fi ArrayBuffer sau Blob-uri). Acest client de test permite trimiterea de mesaje text individuale, procesul fiind declanșat prin apăsarea tastelor Ctrl+Enter sau Command+Enter. Dacă se încearcă trimiterea unui mesaj fără a fi conectat la un server, sistemul va returna eroarea „Conectați-vă înainte de a trimite un mesaj”.

Mesajele primite de la server sunt clasificate automat în jurnal:

  • Mesajele text sunt afișate direct în clar, fiind etichetate corespunzător.
  • Mesajele binare sunt identificate în jurnal prin eticheta „Mesaj binar”, urmată de dimensiunea lor exactă exprimată în „octeți”.

Limitările tehnice ale rulării în browser

Deoarece acest instrument rulează direct în browserul utilizatorului, el este supus limitărilor stricte impuse de API-ul standard WebSocket din browserele moderne:

  • Fără anteturi personalizate: Browserul nu permite adăugarea de anteturi HTTP personalizate în timpul fazei de strângere de mână (handshake).
  • Fără control asupra certificatelor: Nu se pot ocoli erorile de certificat SSL/TLS direct din aplicație.
  • Reguli de acces (CORS/Same-Origin): Browserul va aplica regulile sale standard de securitate și nu va permite conexiuni care încalcă politicile de securitate ale serverului.
  • Cadre de control ascunse: API-ul de browser nu expune fragmentele de la nivel de rețea și nici cadrele de control de tip Ping și Pong, acestea fiind gestionate automat de către browser în fundal.

De asemenea, instrumentul impune anumite limite de performanță pentru a menține stabilitatea paginii:

  • Lungimea maximă a adresei WebSocket este de 2.048 de caractere. Depășirea acesteia generează eroarea „Adresa este neobișnuit de lungă. Păstrați-l sub caracterele 2,048”.
  • Dimensiunea maximă a unui mesaj trimis este de 100.000 de caractere. Depășirea acestei limite duce la afișarea mesajului „Acest mesaj este neobișnuit de mare. Păstrați-l sub caracterele 100,000”.
  • Jurnalul de mesaje păstrează maximum 500 de înregistrări. Când această limită este depășită, intrările vechi sunt eliminate, afișându-se textul „‹count› intrările mai vechi din jurnal au fost eliminate pentru ca această pagină să fie receptivă.”.
  • Fiecare intrare individuală din jurnal poate afișa maximum 20.000 de caractere. Mesajele mai lungi sunt trunchiate, fiind însoțite de textul „‹count› mai multe caractere sunt ascunse în această previzualizare.”.

Confidențialitatea datelor și procesarea locală

Toate operațiunile de procesare a datelor și de comunicare au loc local, direct în browserul utilizatorului. Nimic nu este încărcat în BroBroGo sau salvat de această pagină. Adresa serverului și mesajele transmise circulă exclusiv între browserul dumneavoastră și serverul WebSocket pe care l-ați introdus.

Deoarece conexiunea se realizează direct către serverul țintă, regulile de înregistrare (logging) și păstrare a datelor sunt determinate în întregime de serverul respectiv, aspect care nu poate fi controlat de această pagină. Din acest motiv, se recomandă eliminarea identificatorilor personali și a informațiilor sensibile de natură juridică, financiară sau medicală înainte de a iniția conexiunea.

Întrebări frecvente (FAQ)

Ce date WebSocket pot inspecta aici?
Puteți vedea fiecare mesaj text sau binar expus de browser, direcția, ora și dimensiunea acestuia, plus codul final de închidere, motivul și starea de închidere curată. Paginile de browser nu pot expune fragmente la nivel de rețea sau cadre de control Ping și Pong.

De ce eșuează o conexiune chiar și atunci când adresa funcționează în altă parte?
Pe o pagină securizată, browserul poate solicita wss://. Serverul trebuie să accepte, de asemenea, conexiuni de browser și originea paginii. Acest client nu poate adăuga anteturi personalizate de strângere de mână, nu poate ocoli erorile de certificat sau nu poate suprascrie regulile de acces ale serverului.

Pot testa cu date de producție sau sensibile?
Folosiți date sintetice ori de câte ori este posibil. Eliminați numele, detaliile contului, înregistrările juridice, informațiile financiare și informațiile de sănătate înainte de a trimite. Mesajele ajung la serverul pe care îl alegeți, ale cărui reguli de înregistrare și păstrare sunt în afara controlului acestei pagini.

Ce înseamnă o închidere de conexiune „curată”?
O închidere este considerată curată atunci când procesul de deconectare a urmat protocolul corect de strângere de mână pentru închidere, ambele părți trimițând și primind cadrele de control corespunzătoare înainte ca mufa TCP să fie închisă. În caz contrar, de exemplu la o pierdere bruscă a conexiunii la internet, închiderea este marcată ca fiind „nu curat”.

Dacă șterg jurnalul de mesaje, se va închide conexiunea activă?
Nu. Acțiunea de ștergere a jurnalului elimină doar înregistrările afișate pe ecran pentru a curăța interfața vizuală. Aceasta nu închide conexiunea WebSocket activă și nu resetează contoarele de mesaje trimise și primite.