swoole异步调用的方法

  介绍

这篇文章主要介绍了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>

浏览器:(客户端)

 swoole异步调用的方法

服务器:

 swoole异步调用的方法

第一行数据为服务端输出,一开始建立连接的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异步调用的方法