Channel分散通信コンポーネント

(要求Workermanバージョン>=3.3.0)

ソースコードの所在地:https://github.com/walkor/Channel

Channelはプロセス間またはサーバー間の通信を実現するための分散通信コンポーネントです。

特徴

  1. サブスクリプション-パブリッシュモデルに基づく

  2. ノンブロッキングI/O

原理

ChannelはChannel/ServerサーバーとChannel/Clientクライアントから構成されています。

Channel/Clientはconnectインターフェースを通じてChannel/Serverに接続し、長期接続を維持します。

Channel/Clientはonインターフェースを呼び出して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環境では使用できません。