Целью этой статьи является представление технологии WebSocket, которая есть в последних технических характеристиках HTML5. Она дает возможность использовать клиент с более скоростной передачей данных и динамическим сервером передачи данных.
Вот, что сказано в Википедии о WebSocket:
«WebSocket – это технология, предусматривающая двунаправленный, дуплексный канал связи, по одному сокету TCP. Она предназначена для применения в веб-браузерах и веб-серверах, но может быть использована в любом клиенте или серверном приложении.»
Чтобы лучше понять область применения WebSocket, нужно сначала разобраться, как сегодня работает сеть интернет: при загрузке сайта, отправке формы, щелчке по ссылке и т.д., браузер посылает запрос на веб-сервер, который отвечает за эти действия и присылает ответ. (Опрос)
У нас есть соединение, использующее WebSocket, откуда клиент посылает единственную петицию под названием «рукопожатие», где напрямую создается двунаправленная связь. (WebSockets)
Это открывает новые возможности для разработки, например, финансовых систем, медицинских приложений и любых приложений, требующих соединения в реальном времени.
Как же это использовать?
С одной стороны, у нас есть клиент, с другой – сервер. В настоящее время существуют несколько серверов разработки WebSocket, например:
Платформа Joomla! дает возможность использовать библиотеку с помощью командной строки, и таким образом, мы сможем создать свой собственный сервер WebSocket.
Для того, чтобы создать свой сервер WebSocket на PHP с помощью Joomla!, вам понадобятся специальные классы и объекты, использующие сокеты. Эти объекты не включены в официальный пакет Joomla!, поэтому я создал новую библиотеку, основываясь на работе Эндрю Эдди по WebSocket для Joomla!, описывающую управление конфигурированием и работу сервера WebSocket.
Библиотеки можно скачать отсюда: https://github.com/fastslack/joomla-platform/tree/sockets/libraries/joomla/socket
Установка сервера WebSocket
mkdir websocket_example, cd websocket_example
git clone -b sockets git://github.com/fastslack/joomla-platform.git
git clone git://github.com/fastslack/websocket-example.git
cd websocket-example
configuration.dist.php cp configuration.php
После этого, отредактируйте файл configuration.php и пропишите в нем доступ к данным MySQL сервера.
Запуск сервера
Теперь осталось запустить сервер, чтобы начать процесс:
$ cd cli
$. /websocket_example
Starting server ...
Проверка соединения сервера WebSocket
Как только мы запустили сервер WebSocket, устанавливаем и настраиваем com_websockets - сокеты, через которые клиент подключается к серверу. В этот компонент входят необходимые файлы javascript (*. js). В этой статье мы не пытались создать компонент для Joomla! - для этого на просторах интернета есть много руководств. Я предлагаю скачать и протестировать готовый к использованию компонент.
Выводы
WebSocket обещает стать хорошей платформой для долгожданной «двунаправленной передачи» в HTTP и HTML, что обеспечит сокращение передаваемых данных и предоставит инструменты для создания более быстрых и динамичных соединений в реальном времени. Если добавить к этому различные функции, работающие в библиотеке Joomla!, то можно увидеть довольно широкие перспективы.
Автор оригинального изображения к статье - David Walsh.