Componente de Comunicação Distribuída Channel
(Requer Workerman versão >= 3.3.0)
Código fonte: https://github.com/walkor/Channel
Channel é um componente de comunicação distribuída, utilizado para realizar comunicação entre processos ou entre servidores.
Características
-
Baseado em modelo de publicação e assinatura
-
IO não bloqueante
Princípio
Channel contém os serviços Channel/Server e Channel/Client
Channel/Client se conecta ao Channel/Server através da interface connect e mantém uma conexão longa
Channel/Client informa ao Channel/Server quais eventos está interessado através da interface on e registra funções de callback de eventos (os callbacks ocorrem no processo onde o Channel/Client está)
Channel/Client publica um evento e os dados relacionados a esse evento no Channel/Server através da interface publish
Após receber o evento e os dados, o Channel/Server os distribui aos Channel/Clients que estão interessados nesse evento
Channel/Client, ao receber o evento e os dados, dispara o callback definido pela interface on
Channel/Client receberá apenas eventos de seu interesse e disparará os callbacks correspondentes
Instalação
composer require workerman/channel
Aviso
Channel só pode ser usado no ambiente Workerman, não é utilizável em ambiente php-fpm.