他のフレームワークとの統合方法

質問:

他の MVC フレームワーク(thinkPHP、Yii など)とどのように統合しますか?

回答:

workerman-thinkphp

他の MVC フレームワークと統合することを推奨する方法は、上の図の通りです(ThinkPHP の例):

  1. ThinkPHP と Workerman は二つの独立したシステムであり、独立してデプロイ(異なるサーバーにデプロイ可能)され、互いに干渉しません。

  2. ThinkPHP は HTTP プロトコルを通じてウェブページを提供し、ブラウザでレンダリングして表示します。

  3. ThinkPHP が提供するページの JS が WebSocket 接続を開始し、Workerman に接続します。

  4. 接続後、Workerman にデータパッケージ(ユーザー名、パスワード、または特定のトークン文字列を含む)を送信して、WebSocket 接続がどのユーザーに属するかを検証します。

  5. ThinkPHP がブラウザにデータをプッシュする必要がある場合のみ、Workerman のソケットインターフェースを呼び出してデータをプッシュします。

  6. 残りのリクエストは、元の ThinkPHP の HTTP 方法に従って呼び出して処理します。

まとめ:

Workerman をブラウザにデータをプッシュするためのチャネルとして扱い、ブラウザにデータをプッシュする必要がある場合のみ Workerman インターフェースを呼び出してプッシュを完了させます。ビジネスロジックはすべて ThinkPHP 内で完了します。

ThinkPHP が Workerman ソケットインターフェースを呼び出してデータをプッシュする方法については、よくある質問 - 他のプロジェクトでのプッシュのセクションを参照してください。

ThinkPHP 公式はすでに Workerman をサポートしています。詳細は ThinkPHP5 マニュアル を参照してください。