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

  1. Baseado em modelo de publicação e assinatura

  2. 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.