Как интегрировать с другими фреймворками

Вопрос:

Как интегрировать с другими фреймворками MVC (например, ThinkPHP, Yii и т. д.)?

Ответ:

workerman-thinkphp

Рекомендуется интегрировать с другими фреймворками MVC, следуя изображенной на схеме (на примере ThinkPHP):

  1. ThinkPHP и Workerman - это две независимые системы, которые могут быть развернуты независимо (даже на разных серверах) и не взаимодействуют друг с другом.

  2. ThinkPHP предоставляет веб-страницы через HTTP протокол для отображения в браузере.

  3. JavaScript на страницах, предоставляемых ThinkPHP, инициирует соединение через WebSocket с Workerman.

  4. После соединения отправляется пакет данных в Workerman (включая имя пользователя, пароль или какой-либо токен) для проверки принадлежности соединения через WebSocket к конкретному пользователю.

  5. Workerman вызывается только в случае необходимости отправки данных на браузер из ThinkPHP.

  6. Все остальные запросы обрабатываются в соответствии с обычным HTTP методом ThinkPHP.

Вывод:

Workerman работает как канал для отправки данных на браузер, и вызывается только при необходимости отправки данных на браузер. Вся бизнес-логика обрабатывается в ThinkPHP.

Для получения информации о том, как ThinkPHP вызывает Workerman для отправки данных через сокеты, см. раздел Часто задаваемые вопросы - Отправка данных в другом проекте.

Официальная поддержка работы с Workerman уже включена в ThinkPHP, см. руководство по ThinkPHP5