介绍
这篇文章主要介绍了swoole异步调用的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
<强> swoole怎么异步调用? 强>
<强> swoole 强> <强>中的异步使用强>
测试案例:
改写ws_server。php
客户端,即ws_client。html,发送信息,服务端的onMessage接受并执行设置数据调用onTask,在onTask中打印数据3秒后返回数据给onFinish, onFinish接受数据并输出。
用户页面:
& lt; ! DOCTYPE html> & lt; head> & lt; meta charset=癠TF-8"祝辞 & lt; meta  http-equiv=癈ontent-Type",内容=皌ext/html;, charset=utf-8",/比; & lt; title> & lt;/title> & lt;/head> & lt; body> & lt; h2> chuangxiang——测试& lt;/h2> & lt; script> var wsUrl =,“ws://192.168.0.103:8812"; , var websocket =, new WebSocket (wsUrl); ,//实例对象的onopen属性 时间=websocket.onopen 函数(evt), { ,,,websocket.send (“Hello chaungxiang");//输出到服务器端,即发送信息 ,,,console.log (“connected-swoole-success");//输出在页面 } ,//实例化,onmessage 时间=websocket.onmessage 函数(evt), { ,,,console.log (“ws-server-return-data:“+ evt.data); } ,//实例化onclose 时间=websocket.onclose 函数(evt), { ,,,console.log (“close"); } ,//实例化onerror websocket.onerror =function (evt, e), { ,,,console.log(“错误:“+ evt.data); } & lt;/script> & lt;/body> & lt;/html>浏览器:(客户端)
服务器:
第一行数据为服务端输出,一开始建立连接的onOpen(),之后先由客户端(ws_client.html)通过js代码连接并发送数据;第二行为发送数据前打印;发送数据到服务端后,执行onMessage();其中再次输出数据并建立任务,调用onTask();在其中再次输出数据并返回数据给onFinish ();
服务器端直接输出是到服务器,客户端需要通过,发送等发送到服务器
客户端通过控制台。日志打印数据到页面
异步体现
public function onMessage (ws美元,,帧),{ ,,,echo “ser-push-message:{$框架→数据}\ n"; ,,,data 美元;=,( ,,,,,,,& # 39;任务# 39;,=祝辞,1, ,,,,,,,& # 39;fd # 39;,=祝辞,框架→美元fd, ,,,); ,,,美元ws→任务(元数据); ,,,ws→美元推动(框架→美元fd,,“服务器推送:“.date (“Y-m-d  H:我:s")); }这段代码中建立一个任务任务之后,不会等到任务执行完之后再推,而是会同时进行。在客户端打印并发送数据后,客户端打印的数据与onMessage中的输出间隔很短,并不会受ontask任务中睡眠的影响。
swoole异步调用的方法