Thành phần giao tiếp phân tán Channel

(Yêu cầu phiên bản Workerman >= 3.3.0)

Địa chỉ mã nguồn: https://github.com/walkor/Channel

Channel là một thành phần giao tiếp phân tán, được sử dụng để hoàn thành giao tiếp giữa các tiến trình hoặc giữa các máy chủ.

Đặc điểm

  1. Dựa trên mô hình xuất bản và đăng ký

  2. IO không chặn

Nguyên lý

Channel bao gồm Channel/Server là máy chủ và Channel/Client là khách

Channel/Client kết nối với Channel/Server thông qua giao diện connect và duy trì kết nối lâu dài

Channel/Client thông báo cho Channel/Server mình quan tâm đến những sự kiện nào thông qua giao diện on, và đăng ký hàm phản hồi sự kiện (sự kiện xảy ra trong tiến trình mà Channel/Client đang nằm trong đó)

Channel/Client công bố một sự kiện và dữ liệu liên quan đến sự kiện đó cho Channel/Server thông qua giao diện publish

Channel/Server nhận sự kiện và dữ liệu, sau đó sẽ phân phối đến các Channel/Client quan tâm đến sự kiện này

Channel/Client nhận sự kiện và dữ liệu sau đó kích hoạt hàm phản hồi đã được thiết lập qua giao diện on

Channel/Client chỉ nhận sự kiện mà mình quan tâm và kích hoạt phản hồi

Cài đặt

composer require workerman/channel

Lưu ý

Channel chỉ có thể sử dụng trong môi trường workerman, không thể sử dụng trong môi trường php-fpm.