如何與其它框架整合

問:

如何與其它mvc框架(thinkPHP、Yii等)整合?

答:

workerman-thinkphp

與其它mvc框架結合建議以上圖的方式(ThinkPHP為例):

1、ThinkPHP與Workerman是兩個獨立的系統,獨立部署(可部署在不同伺服器),互不干擾。

2、ThinkPHP以HTTP協議提供網頁頁面在瀏覽器渲染展示。

3、ThinkPHP提供的頁面的js發起websocket連接,連接workerman。

4、連接後給Workerman發送一個數據包(包含用戶名密碼或者某種token串)用於驗證websocket連接屬於哪個用戶。

5、僅在ThinkPHP需要向瀏覽器推送數據時,才調用workerman的socket接口推送數據。

6、其餘請求還是按照原本ThinkPHP的HTTP方式調用處理。

總結:

把Workerman作為一個可以向瀏覽器推送的通道,僅僅在需要向瀏覽器推送數據時才調用Workerman接口完成推送。業務邏輯全部在ThinkPHP中完成。

ThinkPHP如何調用Workerman socket接口推送數據參考見常見問題-在其它專案中推送一節

ThinkPHP官方已經支持了workerman,參見ThinkPHP5手冊