Принцип работы
Описание воркера
Воркер - основной контейнер в WebMan, который может запускать несколько процессов для прослушивания портов и использования определенного протокола для связи, аналогично nginx, который прослушивает определенный порт. Каждый процесс воркера работает независимо, использует epoll (требуется установить расширение event) + неблокирующий ввод-вывод, и каждый процесс воркера может обслуживать десятки тысяч клиентских подключений и обрабатывать данные, поступающие по этим подключениям. Главный процесс, для обеспечения стабильности, отвечает только за мониторинг дочерних процессов, не принимает данные и не выполняет никакой бизнес-логики.
Связь между клиентом и воркером
Отношения между главным процессом и дочерними воркер-процессами
Особенности:
Из графика видно, что каждый воркер поддерживает свои собственные клиентские соединения и может легко реализовать реальное взаимодействие клиента и сервера. На основе этой модели мы можем удобно удовлетворить некоторые базовые потребности разработки, такие как HTTP-сервер, сервер RPC, передача данных в реальном времени умных устройств, отправка данных с сервера, игровой сервер, фоновый процесс для мини-приложений WeChat и т. д.