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

Вопрос:

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

Ответ:

workerman-thinkphp

Рекомендуемый способ интеграции с другими mvc фреймворками представлен на вышеуказанном изображении (на примере ThinkPHP):

  1. ThinkPHP и Workerman — это две независимые системы, которые развёртываются отдельно (могут работать на разных серверах) и не мешают друг другу.

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

  3. JS, предоставляемый страницами ThinkPHP, инициирует соединение websocket с Workerman.

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

  5. Только тогда, когда ThinkPHP нужно отправить данные в браузер, вызывается сокет-интерфейс Workerman для осуществления отправки данных.

  6. Остальные запросы обрабатываются по стандартному HTTP-подходу ThinkPHP.

Итог:

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

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

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