如題 官方文檔明確寫出 GatewayWorker不接受客戶端發(fā)來的數(shù)據(jù),即GatewayWorker不處理任何業(yè)務(wù)邏輯,GatewayWorker僅僅當(dāng)做一個(gè)單向的推送通道
比如我的A要給B發(fā)送一條信息 明明我可以直接ws.send(xxx) 給GatewayWorker 然后再轉(zhuǎn)發(fā)給B 官方為何會(huì)推薦發(fā)一個(gè)ajax去控制器里,再到控制器里發(fā)送消息呢
這樣豈不是增加了步驟?
官方為何這么推薦呢,有點(diǎn)迷惑
這里講的是GatewayWorker如何與其它mvc框架結(jié)合。
如果業(yè)務(wù)只是簡(jiǎn)單的將消息轉(zhuǎn)發(fā)可以直接使用GatewayWorker,也就沒有必要把其它框架了,直接使用GatewayWorker收發(fā)消息是沒有問題的。
現(xiàn)實(shí)中不僅僅是消息轉(zhuǎn)發(fā)這么簡(jiǎn)單,A給B發(fā)消息,一般需要判斷A是否有權(quán)限給B發(fā),B是否存在,消息數(shù)據(jù)要存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù)以便查看歷史消息。這些業(yè)務(wù)邏輯都需要讀寫存儲(chǔ)的,開發(fā)者熟悉mvc框架,在mvc里操作這些很順手。所以推薦ajax發(fā)到mvc框架做這些邏輯,然后mvc框架用gatewayClient調(diào)用GatewayWorker推送消息給前端。
可不可以在events onmessage中做消息轉(zhuǎn)發(fā) clentid message 調(diào)用tp5中其他控制器方法進(jìn)行消息處理呢
我用tp5 簡(jiǎn)單的轉(zhuǎn)發(fā)ok 但是一旦調(diào)用的控制器繼承了think/controller 就會(huì)報(bào)錯(cuò) 有沒有好的解決辦法