Тестовий клієнт WebSocket

Підключайтеся до WebSocket, надсилайте повідомлення та переглядайте надіслані й отримані повідомлення, стан з’єднання, код закриття WebSocket і причину закриття, яку надає сервер.

Введіть повну адресу ws:// або wss://. З’єднання починається лише тоді, коли ви вибираєте З’єднатися.
Введіть адресу WebSocket для підключення.Закрити код
Надсилає одне текстове повідомлення. Натисніть Ctrl+Enter або Command+Enter, щоб надіслати.
Журнал повідомлень
Надіслано 0Отримано 0

Підключіться та надішліть повідомлення, щоб розпочати журнал.

Ця сторінка нічого не завантажує в BroBroGo і не зберігає. Ваша адреса та повідомлення надходять безпосередньо з вашого браузера на сервер WebSocket, який ви виберете.

Поширені запитання

Які дані WebSocket я можу тут перевірити?

Ви можете побачити кожне текстове або двійкове повідомлення, яке відкриває ваш браузер, його напрямок, час і розмір, а також остаточний код закриття, причину та статус чистого закриття. Сторінки браузера не можуть розкривати фрагменти мережевого рівня або керуючі кадри Ping і Pong.

Чому з’єднання не вдається, навіть якщо адреса працює в іншому місці?

На безпечній сторінці браузер може вимагати wss://. Сервер також має приймати підключення браузера та джерело сторінки. Цей клієнт не може додавати спеціальні заголовки рукостискання, обходити помилки сертифіката або перевизначати правила доступу сервера.

Чи можна тестувати з робочими або конфіденційними даними?

По можливості використовуйте синтетичні дані. Перед надсиланням видаліть імена, дані облікового запису, юридичні записи, фінансову інформацію та інформацію про здоров’я. Повідомлення надходять на вибраний вами сервер, чиї правила журналювання та збереження не підпадають під контроль цієї сторінки.

Робота з протоколом WebSocket та життєвий цикл з’єднання

Протокол WebSocket забезпечує постійне двостороннє з’єднання між клієнтом і сервером через одне TCP-з’єднання. На відміну від традиційного протоколу HTTP, де кожен запит потребує нового відкриття з’єднання або повторного використання існуючого в режимі «запит-відповідь», WebSocket дозволяє передавати дані в реальному часі в обох напрямках одночасно. Це робить його незамінним інструментом для розробників API реального часу, інженерів з інтеграції, фахівців із забезпечення якості (QA) та системних адміністраторів (Ops).

Життєвий цикл з’єднання WebSocket складається з кількох чітких етапів:

  1. Рукостискання (Handshake): Клієнт надсилає HTTP-запит із заголовком Upgrade, сигналізуючи про бажання перейти на протокол WebSocket.
  2. Встановлення з’єднання: Якщо сервер підтримує протокол і схвалює запит, з’єднання переходить у відкритий стан.
  3. Обмін даними: Клієнт і сервер можуть вільно надсилати текстові та двійкові повідомлення.
  4. Закриття з’єднання: Будь-яка сторона може ініціювати закриття, передавши спеціальний кадр із кодом і текстовою причиною закриття.

Протоколи ws:// та wss://: безпека та відмінності

Для встановлення зв’язку використовуються дві схеми URI:

  • ws:// (WebSocket) — нешифроване з’єднання, аналогічне HTTP. Дані передаються у відкритому вигляді, що робить їх вразливими для перехоплення в локальній мережі.
  • wss:// (WebSocket Secure) — шифроване з’єднання поверх TLS, аналогічне HTTPS. Воно забезпечує конфіденційність, цілісність даних та автентифікацію сервера.

Сучасні веб-переглядачі застосовують суворі правила безпеки щодо змішаного вмісту (Mixed Content). Якщо веб-сторінка завантажена через безпечне з’єднання HTTPS, браузер заблокує спробу підключення до нешифрованого ендпоінту ws://. У таких випадках необхідно використовувати виключно адресу wss://.

Правила використання інструменту та обмеження введення

Для успішної взаємодії з сервером через Тестовий клієнт WebSocket діють такі правила та обмеження:

  • Адреса WebSocket: Потрібно вказати повну адресу, яка починається з ws:// або wss://. Якщо схема вказана неправильно, з’явиться повідомлення: «Використовуйте адресу ws:// або wss://». Якщо введена адреса не є повною, інструмент покаже помилку: «Введіть повну адресу WebSocket, наприклад wss://example.com/socket». Максимальна довжина адреси становить 2 048 символів; у разі перевищення відображається: «Ця адреса надзвичайно довга. Зберігайте його під символами 2,048».
  • Ініціація підключення: З’єднання з сервером починається лише після натискання кнопки «Підключитися». Під час спроби встановити зв’язок відображається статус: «Підключення до ‹address›…».
  • Надсилання повідомлень: Ви можете надсилати одне текстове повідомлення за раз, натиснувши кнопку «Надіслати повідомлення» або комбінацію клавіш Ctrl+Enter чи Command+Enter. Спроба відправити дані без активного з’єднання викличе помилку: «Підключіться перед надсиланням повідомлення». Максимальний розмір одного повідомлення обмежений 100 000 символів. Якщо ліміт перевищено, з’явиться попередження: «Це повідомлення надзвичайно велике. Зберігайте його під символами 100,000».

Обробка помилок та діагностика з’єднання

Під час тестування WebSocket-серверів ви можете зіткнутися з різними мережевими та конфігураційними перешкодами. Інструмент допомагає локалізувати проблему за допомогою інформативних повідомлень:

  • Таймаут підключення: Якщо сервер не відповідає на запит рукостискання протягом 10 секунд, клієнт припиняє спробу та виводить повідомлення: «Сервер не відкрив з’єднання протягом 10 секунд».
  • Помилка підключення: Якщо з’єднання не вдалося встановити через мережеві проблеми, недійсний сертифікат або блокування, відображається: «Помилка підключення. Перевірте адресу, сертифікат, доступність сервера та правила доступу до браузера».

Слід враховувати обмеження безпеки середовища браузера. Цей клієнт працює безпосередньо у вашому веб-переглядачі, тому він не може додавати спеціальні заголовки рукостискання (наприклад, змінювати Origin або додавати авторизаційні токени, які заборонені специфікацією браузерного API), обходити помилки самопідписаних сертифікатів або перевизначати правила доступу сервера (включаючи політику CORS та обмеження джерела). Також браузерне API не надає доступу до низькорівневих фрагментів мережевого рівня та не дозволяє перехоплювати або надсилати службові керуючі кадри Ping і Pong.

Журнал повідомлень та інтерпретація статусів закриття

Усі події та повідомлення фіксуються у хронологічному журналі. Кожен запис має відповідну мітку:

  • «Надіслано» — для вихідних повідомлень клієнта.
  • «Отримано» — для вхідних повідомлень від сервера.
  • «Подія» — для системних подій з’єднання.
  • «текст» — позначає текстовий вміст.
  • «Двійкове повідомлення» — вказує на отримання бінарних даних, після чого відображається їхній розмір у байтах (наприклад, «Двійкове повідомлення» та кількість «байтів»).

При успішному відкритті з’єднання у журналі з’являється запис: «Підключено до ‹address›.». Клієнт також веде лічильники надісланих та отриманих повідомлень, які відображаються у полях «Надіслано» та «Отримано».

Для забезпечення стабільної роботи інтерфейсу та запобігання зависанню вкладки діють ліміти на обсяг даних у журналі:

  1. Обмеження кількості записів: Журнал зберігає максимум 500 подій. При перевищенні старі записи видаляються, а на екрані з’являється повідомлення: «‹count› старіші записи журналу було видалено, щоб ця сторінка не реагувала.».
  2. Обмеження розміру повідомлення: Окремий запис у журналі відображає не більше 20 000 символів. Довші повідомлення обрізаються, супроводжуючись плашкою: «‹count› більше символів приховано в цьому попередньому перегляді.».

Очищення журналу за допомогою кнопки «Очистити журнал» видаляє лише відображені на екрані записи, але не закриває поточне з’єднання та не скидає лічильники повідомлень.

Коли сервер або клієнт закриває з’єднання, у журналі фіксується подія закриття у форматі: «Закрито кодом ‹code› (‹clean›). Причина: ‹reason›». Статус закриття може бути «чистий» (якщо процедуру закриття завершено коректно на рівні протоколу) або «не чистий». Якщо сервер не передав текстове пояснення причини закриття, відображається стандартне значення: «Причина не вказана». Також виводиться числовий «Закрити код».

Конфіденційність та обробка даних

Обробка всіх даних відбувається виключно у вашому браузері. Ця сторінка нічого не завантажує в BroBroGo і не зберігає. Введена адреса сервера та вміст повідомлень надходять безпосередньо з вашого пристрою на вказаний вами WebSocket-сервер.

Зверніть увагу, що перед підключенням та надсиланням даних слід видалити особисті ідентифікатори, конфіденційну юридичну, фінансову чи медичну інформацію. Оскільки повідомлення надсилаються безпосередньо на кінцевий сервер, ця сторінка не може контролювати правила реєстрації, журналювання або збереження даних на стороні отримувача.


Поширені запитання (FAQ)

Які дані WebSocket я можу тут перевірити?

Ви можете побачити кожне текстове або двійкове повідомлення, яке відкриває ваш браузер, його напрямок, час і розмір, а також остаточний код закриття, причину та статус чистого закриття. Сторінки браузера не можуть розкривати фрагменти мережевого рівня або керуючі кадри Ping і Pong.

Чому з’єднання не вдається, навіть якщо адреса працює в іншому місці?

На безпечній сторінці браузер може вимагати wss://. Сервер також має приймати підключення браузера та джерело сторінки. Цей клієнт не може додавати спеціальні заголовки рукостискання, обходити помилки сертифіката або перевизначати правила доступу сервера.

Чи можна тестувати з робочими або конфіденційними даними?

По можливості використовуйте синтетичні дані. Перед надсиланням видаліть імена, дані облікового запису, юридичні записи, фінансову інформацію та інформацію про здоров’я. Повідомлення надходять на вибраний вами сервер, чиї правила журналювання та збереження не підпадають під контроль цієї сторінки.

Що означає статус закриття «чистий» та «не чистий»?

Статус «чистий» вказує на те, що з’єднання було закрите за повною процедурою рукостискання закриття WebSocket (обидві сторони обмінялися кадрами закриття). Статус «не чистий» означає, що з’єднання було розірвано раптово на рівні TCP, наприклад, через збій мережі, вимкнення сервера або втрату живлення.