Как интегрировать с другими фреймворками
Вопрос:
Как интегрировать с другими фреймворками MVC (например, ThinkPHP, Yii и т. д.)?
Ответ:
Рекомендуется интегрировать с другими фреймворками MVC, следуя изображенной на схеме (на примере ThinkPHP):
-
ThinkPHP и Workerman - это две независимые системы, которые могут быть развернуты независимо (даже на разных серверах) и не взаимодействуют друг с другом.
-
ThinkPHP предоставляет веб-страницы через HTTP протокол для отображения в браузере.
-
JavaScript на страницах, предоставляемых ThinkPHP, инициирует соединение через WebSocket с Workerman.
-
После соединения отправляется пакет данных в Workerman (включая имя пользователя, пароль или какой-либо токен) для проверки принадлежности соединения через WebSocket к конкретному пользователю.
-
Workerman вызывается только в случае необходимости отправки данных на браузер из ThinkPHP.
-
Все остальные запросы обрабатываются в соответствии с обычным HTTP методом ThinkPHP.
Вывод:
Workerman работает как канал для отправки данных на браузер, и вызывается только при необходимости отправки данных на браузер. Вся бизнес-логика обрабатывается в ThinkPHP.
Для получения информации о том, как ThinkPHP вызывает Workerman для отправки данных через сокеты, см. раздел Часто задаваемые вопросы - Отправка данных в другом проекте.
Официальная поддержка работы с Workerman уже включена в ThinkPHP, см. руководство по ThinkPHP5