国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

手冊上的與thinkphp結(jié)合那邊send_message.php(利用GatewayClient發(fā)送)是怎么觸發(fā)的??

zyx
5343 7 0
7個回答

walkor 打賞

請把問題描述清楚

  • 暫無評論
zyx

手冊上結(jié)合thinkphp那頁 的例子 是會實現(xiàn)什么效果?

  • 暫無評論
walkor 打賞

結(jié)合的效果

  • 暫無評論
zyx

。。。我是不知道send_message.php那段代碼怎么用

  • 暫無評論
zyx

還有個問題 在tp框架里這例子上的代碼 bind.php和send_message.php是不是可以整合成一個控制器?

  • 暫無評論
walkor 打賞

可以

  • 暫無評論
evilk

server端可以完全跟我們常用的web端框架分離部署,比如你的web應(yīng)用根目錄是A,server端的目錄(也就是GatewayWorker的目錄)是B,
A跟B,沒有任何聯(lián)系,可以任意分離部署,完全沒有任何影響
一開始,你啟動server端,讓服務(wù)啟動起來,然后,
比如你有個order頁面,在這個頁面上的Js代碼中,寫上文檔示例中的js代碼,一旦通過瀏覽器訪問這個頁面,
那么這個頁面也就跟server端通過websocket建立了連接,js中的ajax中的URL,請求的是控制器里面任意一個方法,這個方法是專門用來做綁定clientId跟uId的,
這個時候,就需要用到 GatewayClient/Gateway.php 這個文件,以TP5來說,你可以把它當(dāng)做一個第三方類庫引入框架里,也就是放在根目錄下的extend目錄中,
此時注意命名空間,然后回到控制器,在這個綁定的方法中,可以直接照搬示例中bind.php的代碼,因為需要用到 Gateway 這個類,
接著,假如,我們有個業(yè)務(wù),用戶下單后,要推送一條消息給用戶,那么,你就可以在你的控制器里面,寫一個方法,
這個方法具體做什么呢,按照剛才我們假定的需求,寫一段下單的代碼后,然后就把示例中 Gateway::sendToUid($uid, $message); 這段代碼加到剛才那段下單的
代碼后面(這段代碼你可以放在任何可以正常使用的地方,這里只是做演示,所以耦合在一起),
這個有點類似于 laravel 中的事件觸發(fā),用戶下單,這個動作,這個操作,觸發(fā)了一個事件,在這里,這個事件就是 推送消息
假如此時,用戶在order頁面上,進行了下單這個操作,那么,就會通過http請求到我們的web端,
根據(jù)剛才那段代碼,觸發(fā) 推送消息 這個事件,也就是執(zhí)行那段 Gateway::sendToUid($uid, $message);
如果用戶沒有關(guān)閉order這個頁面,那么頁面上就會根據(jù)那段JS代碼,進行消息提醒,這個示例的大致流程就是這樣
總的來說就是-
啟動server(這個server不是web端,而是GatewayWorker)
->用戶訪問order頁面(一旦訪問,就建立了連接,并綁定)
->用戶執(zhí)行下單操作,觸發(fā)推送事件
->頁面收到server端推來的消息,并彈出提醒

示例中有一點要注意,不曉得是不是個例,send_message.php 中,Gateway::sendToUid($uid, $message);
這里的 $message 不能是 string 而應(yīng)該是 類似
json_encode(array(
'status' => 0,
'message' => 'xxxxxx'
))

因為 頁面中 js 部分 接收到的消息,最初應(yīng)該是 jsonString
第一次接觸這樣的框架,跟以前開發(fā)web端,思路不太一樣
才摸索了兩天,還有很多不懂,希望向各位大神學(xué)習(xí),共勉

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??