如題,謝謝
.
| <----ws----GatewayWorker
| ^
瀏覽器 | GatewayClient | ||
---|---|---|---|
<---http---> webserver(thinkphp/yii ....) |
僅僅把GatewayWorker當(dāng)做一個(gè)通訊通道
如圖其實(shí)可以把GatewayWorker當(dāng)僅僅做一個(gè)可以主動(dòng)推送數(shù)據(jù)到客戶端的通訊通道,這個(gè)通道可以認(rèn)為是單向的,不必用這個(gè)通道來接收數(shù)據(jù)。這樣也就不必在GatewayWorker中處理業(yè)務(wù)邏輯。
使用任意php mvc框架開發(fā)業(yè)務(wù)邏輯
接收客戶端的請(qǐng)求仍然以http協(xié)議利用普通mvc框架接收處理。你可以使用自己喜歡的任何php mvc框架來開發(fā)業(yè)務(wù)邏輯,只有當(dāng)你需要向?yàn)g覽器主動(dòng)推送數(shù)據(jù)時(shí),調(diào)用GatewayClient提供的接口推送即可。僅僅把GatewayWorker當(dāng)做一個(gè)通訊通道。
關(guān)于GatewayClient
GatewayClient可以看做是GatewayWorker的一個(gè)sdk,讓開發(fā)者在任何項(xiàng)目中可以像在GatewayWorker環(huán)境中一樣,調(diào)用Gateway接口操作客戶端連接,例如調(diào)用Gateway::sendToClient向?yàn)g覽器推送數(shù)據(jù)。GatewayClient幾乎支持GatewayWorker中的任意操作,例如分組、綁定uid、踢人等等,調(diào)用方法也一模一樣。
GatewayClient介紹見GatewayWorker手冊
http://workerman.net/gatewaydoc/advanced/push.html