JavaScript WebSocket: опис, принцип роботи, застосування

Переваги веб-сокета

WS вирішує кілька проблем з REST або HTTP. HTTP — це односторонній протокол, в якому клієнт завжди ініціює запит. Сервер обробляє і повертає відповідь, а потім клієнт використовує його. Websocket — це двонаправлений протокол, в якому немає визначених шаблонів повідомлень, таких як запит/відповідь. Або клієнт, або сервер може відправити повідомлення іншій стороні.

HTTP дозволяє повідомленням запиту перейти від клієнта до сервера, а потім він відправляє відповідь. У певний момент часу клієнт спілкується з сервером або навпаки. Як правило, нове з’єднання TCP ініціюється для HTTP-запиту і припиняється після одержання відповіді. Необхідно встановити нове TCP-з’єднання для іншого HTTP-запиту / відповіді.

Для WS HTTP-з’єднання оновлюється з використанням стандартного механізму оновлення. Клієнт і сервер обмінюються даними через один і той же TCP-з’єднання в межах життєвого циклу з’єднання WS.

Websocket — це протокол низького рівня. Все, включаючи простий шаблон запиту/відповіді, способи створення, оновлення, видалення необхідних ресурсів та коди стану. Всі вони ретельно визначені для HTTP.

WS — це протокол з відстеженням стану, тоді як HTTP — це протокол без збереження стану.

З’єднання WS можуть масштабуватися вертикально на одному сервері, тоді як HTTP може масштабуватися горизонтально. Існує кілька запатентованих рішень для горизонтального масштабування, але вони не засновані на стандартах.

HTTP поставляється з безліччю інших переваг, таких як кешування, маршрутизація та мультиплексування. Все це повинно бути визначено поверх WebSocket і бази даних Java.