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
-
Dựa trên mô hình xuất bản và đăng ký
-
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.