Компонент распределенной связи Channel
(требуется версия Workerman >= 3.3.0)
Исходный код: https://github.com/walkor/Channel
Channel — это компонент распределенной связи, предназначенный для выполнения межпроцессной или межсерверной связи.
Особенности
-
Основан на модели публикации и подписки
-
Неблокирующий ввод-вывод
Принцип работы
Channel включает в себя Channel/Server как серверную часть и Channel/Client как клиентскую часть.
Channel/Client подключается к Channel/Server через интерфейс connect и поддерживает долгое соединение.
Channel/Client сообщает Channel/Server, на какие события он подписан, вызывая интерфейс on, и регистрирует функции обратного вызова (обратные вызовы происходят в процессе, где находится Channel/Client).
Channel/Client публикует событие и связанные с ним данные на Channel/Server через интерфейс publish.
После получения событий и данных Channel/Server распределяет их среди Channel/Client, подписанных на это событие.
Channel/Client получает события и данные, после чего срабатывает зарегистрированный вызов по интерфейсу on.
Channel/Client будет получать только события, на которые он подписан, и вызывать соответствующие обратные вызовы.
Установка
composer require workerman/channel
Внимание
Channel может использоваться только в среде workerman, в среде php-fpm не поддерживается.