這篇文章主要介紹了swoole異步調(diào)用的方法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的永仁網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
swoole怎么異步調(diào)用?
Swoole中的異步使用
測(cè)試案例:
改寫(xiě)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); // 耗時(shí)場(chǎng)景 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,發(fā)送信息,服務(wù)端的onMessage接受并執(zhí)行設(shè)置數(shù)據(jù)調(diào)用onTask,在onTask中打印數(shù)據(jù)3秒后返回?cái)?shù)據(jù)給onFinish,onFinish接受數(shù)據(jù)并輸出。
用戶頁(yè)面:
chuangxiang--測(cè)試