Інтернет-конференції НУБіП України, ТЕОРЕТИЧНІ ТА ПРИКЛАДНІ АСПЕКТИ РОЗРОБКИ КОМП’ЮТЕРНИХ СИСТЕМ '2021

Розмір шрифту: 
Підключення технології WebSocket для обміну інформації в реальному часі
Владислав Петрович Редько, Никита Дмитрович Гамаюнов

Остання редакція: 27-04-2021

Тези доповіді


Метою публікації є практична реалізація підключення браузеру до WebSocket серверу. Суть підключення полягає у обміну інформації в режимі реального часу.

WebSocket — це протокол, що призначений для обміну інформацією між браузером та веб-сервером в режимі реального часу. Він забезпечує двонаправлений повнодуплексний канал зв'язку через один TCP-сокет. WebSocket спроектовано для втілення у веб-браузерах та веб-серверах, але може також використовуватись будь-яким клієнт-серверним застосунком. Прикладний програмний інтерфейс WebSocket був стандартизований W3C, крім того протокол WebSocket стандартизований IETF як RFC 6455.[1]

Специфікація протоколу WebSocket визначає дві нові схеми URI, ws: та wss:,[2] для нешифрованого та шифрованого з'єднання відповідно. Поза іменем схеми, решта складових URI визначена загальним синтаксисом URI.[3]

WebSocket підтримують такі браузери:

  • Google Chrome (починаючи з версії 4.0.249.0);
  • Apple Safari (починаючи з версії 5.0.7533.16);
  • Mozilla Firefox (починаючи з версії 4);
  • Opera (починаючи з версії 10.70 9067);

Також WebSocket підтримують

  • мобільна версія Safari в iOS 4.2
  • BlackBerry Browser в OS7
Для розгортання WebSocket серверу використовується бібліотека Ratchet. Спочатку її потрібно встановити у проект за допомогою менеджера пакетів Composer або за посиланням https://github.com/ratchetphp/Ratchet. Після цього потрібно імпортувати бібліотеку та за її допомогою ініціалізувати прослуховування підключень на вказаному порті. На рис.1 приведено приклад ініціалізіації.

Після написання коду з’являється можливість підключитися до серверу та отримувати та відправляти повідомлення з даними в режимі реального часу. Для цього потрібно за допомогою консолі та будь якого браузеру виконати спеціальну команду для відправлення запиту на підключення. На рис. 2 приведено приклад команди на відправку запиту.

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

  1. RFC 6455 – Режим доступу до ресурсу: https://www.arduino.cc/en/Main/ReleaseNotes. (дата звернення 23.04.2020).
  2. IANA Uniform Resource Identifer (URI) Schemes. Режим доступу до ресурсу: http://www.iana.org/assignments/uri-schemes.html
  3. draft-hixie-thewebsocketprotocol-76 - The WebSocket protocol. Режим доступу до ресурсу: http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol