如何與其它框架整合
問:
如何與其它mvc框架(thinkPHP、Yii等)整合?
答:
與其它mvc框架結合建議以上圖的方式(ThinkPHP為例):
1、ThinkPHP與Workerman是兩個獨立的系統(tǒng),獨立部署(可部署在不同服務器),互不干擾。
2、ThinkPHP以HTTP協(xié)議提供網(wǎng)頁頁面在瀏覽器渲染展示。
3、ThinkPHP提供的頁面的js發(fā)起websocket連接,連接workerman
4、連接后給Workerman發(fā)送一個數(shù)據(jù)包(包含用戶名密碼或者某種token串)用于驗證websocket連接屬于哪個用戶。
5、僅在ThinkPHP需要向瀏覽器推送數(shù)據(jù)時,才調用workerman的socket接口推送數(shù)據(jù)。
6、其余請求還是按照原本ThinkPHP的HTTP方式調用處理。
總結:
把Workerman作為一個可以向瀏覽器推送的通道,僅僅在需要向瀏覽器推送數(shù)據(jù)時才調用Workerman接口完成推送。業(yè)務邏輯全部在ThinkPHP中完成。
ThinkPHP如何調用Workerman socket接口推送數(shù)據(jù)參考見常見問題-在其它項目中推送一節(jié)
ThinkPHP官方已經(jīng)支持了workerman,參見ThinkPHP5手冊