swoole怎么異步調用

swoole怎么異步調用

swoole怎么異步調用?

swoole中的異步使用

測試案例:

改寫ws_server.php

$this->ws->set( ????[ ????????'worker_num'?=>?2, ????????'task_worker_num'?=>?2, ????] ); ? $this->ws->on("open",?[$this,?'onOpen']); $this->ws->on("message",?[$this,?'onMessage']); $this->ws->on("task",?[$this,?'onTask']); $this->ws->on("finish",?[$this,?'onFinish']); $this->ws->on("close",?[$this,?'onClose']); ? public?function?onOpen($ws,?$request)?{ ????var_dump($request->fd); } ? public?function?onMessage($ws,?$frame)?{ ????echo?"ser-push-message:{$frame->data}n"; ????$data?=?[ ????????'task'?=>?1, ????????'fd'?=>?$frame->fd, ????]; ????$ws->task($data); ????$ws->push($frame->fd,?"server-push:".date("Y-m-d?H:i:s")); } ? public?function?onTask($serv,?$taskId,?$workerId,?$data)?{ ????print_r($data); ????//?耗時場景?10s ????sleep(10); ????return?"on?task?finish";?//?告訴worker??? } ? ? public?function?onFinish($serv,?$taskId,?$data)?{ ????echo?"taskId:{$taskId}n"; ????echo?"finish-data-sucess:{$data}n"; }

客戶端,即ws_client.html,發送信息,服務端的onMessage接受并執行設置數據調用onTask,在onTask中打印數據3秒后返回數據給onFinish,onFinish接受數據并輸出。

用戶頁面:

nbsp;html&gt;  <meta><meta><title></title><h1>chuangxiang--測試</h1> <script> var wsUrl = "ws://192.168.0.103:8812";   var websocket = new WebSocket(wsUrl);   //實例對象的onopen屬性 websocket.onopen = function(evt) {     websocket.send("Hello chaungxiang");//輸出到服務器端,即發送信息     console.log("connected-swoole-success");//輸出在頁面 }   //實例化 onmessage websocket.onmessage = function(evt) {     console.log("ws-server-return-data:"+evt.data); }   //實例化onclose websocket.onclose = function(evt) {     console.log("close"); }   //實例化onerror websocket.onerror =function(evt,e) {     console.log("error:"+evt.data); } </script>

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享