Channel分散通信コンポーネント
(要求Workermanバージョン>=3.3.0)
ソースコードの所在地:https://github.com/walkor/Channel
Channelはプロセス間またはサーバー間の通信を実現するための分散通信コンポーネントです。
特徴
-
サブスクリプション-パブリッシュモデルに基づく
-
ノンブロッキング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環境では使用できません。