Компонент распределенной связи Channel

(требуется версия Workerman >= 3.3.0)

Исходный код: https://github.com/walkor/Channel

Channel - это компонент распределенной связи, используемый для обмена сообщениями между процессами или серверами.

Особенности

  1. Основан на модели издатель-подписчик
  2. Неблокирующий ввод-вывод

Принцип работы

Channel включает в себя сервер Channel/Server и клиент Channel/Client
Клиент Channel/Client подключается к серверу Channel/Server с помощью интерфейса connect и поддерживает долгосрочное соединение
Клиент Channel/Client сообщает серверу Channel/Server, на какие события он подписан, и регистрирует функции обратного вызова событий (вызов обратной функции выполняется в процессе, в котором находится клиент Channel/Client)
Клиент Channel/Client с помощью интерфейса publish публикует определенное событие и связанные с ним данные серверу Channel/Server
После получения события и данных сервер Channel/Server отправляет их зарегистрированным клиентам Channel/Client, заинтересованным в этом событии
Клиент Channel/Client, получивший событие и данные, вызывает зарегистрированный обратный вызов, установленный с помощью интерфейса on
Клиент Channel/Client получает только те события, на которые он подписан, и вызывает соответствующие обратные вызовы

Установка

composer require workerman/channel

Примечание

Channel можно использовать только в среде Workerman, нельзя использовать в среде php-fpm.