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