目录结构:

服务器端:

/*

*author:hdj

*/

namespace app\Console;

use think\console\Command;

use think\console\Input;

use think\console\Output;

class Websocket extends Command{

protected $server;

protected function configure()

{

$this->setName('websocket:start')->setDescription('Start Web Socket Server!');

}

protected function execute(Input $input, Output $output)

{

$serv = new \swoole_server('0.0.0.0',9501);

$serv->set(array('task_worker_num' => 4));

$serv->on('connect', function ($serv, $fd){

echo $fd."客户端已经连接进来了.\n";

});

$serv->on('receive', function($serv, $fd, $from_id, $data) {

$task_id = $serv->task($data);

echo "开始投递异步任务 id=$task_id\n";

});

$serv->on('task', function ($serv, $task_id, $from_id, $data) {

echo "接收异步任务[id=$task_id]".PHP_EOL;

for ($i = 0 ; $i<10000;$i++){

if($i%2==0){

echo 'send'.$i.' success'."\n";

}else{

echo 'send'.$i.' fail'."\n";

}

sleep(1);

}

$serv->finish("$data -> OK");

});

$serv->on('finish', function ($serv, $task_id, $data) {

echo "异步任务[id=$task_id]完成".PHP_EOL;

});

$serv->start();

}

}

进入你的根目录 执行  php think websocket:start

客户端:

namespace app\index\controller;

use think\Controller;

class Test extends Controller

{

public function index(){

$client = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);

$ret = $client->connect("23.27.127.32", 9501);

if(empty($ret)){

echo 'error!connect to swoole_server failed';

} else {

$client->send('blue');

}

}

}

服务端显示:

你是不是多少有了解一点,但是你却对这个不精啊!免费分享tp,laravel,swoole,swoft微服务、SQL性能优化,分布式、高并发等教程,各种大牛都是1-78年PHP开发者,每天还有11年的架构师做课程讲解,助你进阶中高级PHP程序员,增值涨薪!

thinkphp5 异步调用方法_thinkphp5 swoole 执行异步任务相关推荐

  1. (二)线程--通过委托异步调用方法

    (一).描述   先运行个简单的线程示例,认识一下线程   通过委托调用方法,以及使用AsyncResult判断线程的状态 (二).代码 using System; using System.Thre ...

  2. java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?

    你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧! 1.利用Spring的异步方法去执行 注:没有返回值 在启动类又或者是配置类加 ...

  3. SpringBoot异步调用方法

    SpringBoot异步调用方法 一.spring boot--使用异步请求,提高系统的吞吐量 https://blog.csdn.net/liuchuanhong1/article/details/ ...

  4. thinkphp5 异步调用方法_详解thinkphp5+swoole实现异步邮件群发(SMTP方式)

    本文介绍了thinkphp5+swoole实现异步邮件群发(SMTP方式),分享给大家,具体如下: 1.环境说明 阿里云centos7 thinkphp5.0.11 swoole2.0.8 2.tp实 ...

  5. 17委托异步调用方法

    抽象出一个炒菜的类. 1: //炒菜 2: public class Cooking 3: { 4: public string Cook(string food1, string food2) 5: ...

  6. jquery 异步调用方法中不能给全局变量赋值的原因及解决办法

    在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:t ...

  7. WinForm 异步调用方法

    假如要在一个线程中异步执行一个方法,则先创建一个该方法的委托类型,然后CLR会自动为该委托类型定义一个BeginInvoke方法和EndInvoke方法,我们就靠这两个方法异步调用委托类型指向的方法( ...

  8. Spring Boot 中使用@Async实现异步调用,加速任务执行!

    欢迎关注方志朋的博客,回复"666"获面试宝典 什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照 ...

  9. 异步调用方法时异常的捕获

    在异步调用一个方法时,由于不在一个线程内,异常的处理不同于普通同步调用,但可以在EndXXX时,使用try{}catch{}来捕获. public static void main(string[]  ...

最新文章

  1. Python字符串中含有某子字符串的个数
  2. 用GAN还原语义标注图!还能手动改细节(附论文、代码)
  3. redis 的一主二从三哨兵模式
  4. errno的基本用法
  5. 解决Chrome浏览器高版本无法拖拽离线安装CRX格式插件的问题
  6. C++ 简单的语音合成(TTS,即文字转语音)类
  7. 《ASP.NET Core项目开发实战入门》送书活动结果公布
  8. 问题总结2015/05/05
  9. python入门--字符串,切片
  10. iqooneo系统要不要更新_IQOOZ1即将发布,和IQOOneo3、OPPORenoACE对比,谁更值得入手?...
  11. TCP/IP详解 笔记十一
  12. HDU 2063:过山车(匈牙利算法模板题)
  13. coolfire文章之五
  14. 调整计算机屏幕亮度快捷键,笔记本亮度调节的快捷键
  15. 网页转圈打不开服务器,打不开网页怎么回事
  16. rar文件ubuntu_如何在Ubuntu上提取RAR文件
  17. 医学计算机课程标准,《医学影像诊断学》课程标准.doc
  18. (SOJ) check if a word is on a given Boggle board
  19. Linux命令手动清除缓存
  20. 网易双11“超级工程”:反欺诈系统应用实践

热门文章

  1. asp.net core AuthenticationMiddleware 在WebApi中的的使用
  2. Connect 2016过后,你的信仰势必需要更大的容器
  3. .NET Core VS Code 环境配置
  4. HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview
  5. 用c语言递归函数做扫雷,【C语言基础学习---扫雷游戏】(包含普通版+递归炼狱版)...
  6. 阿里云ECS服务器多种实例规格如何选择
  7. Nginx—— Rewrite规则的使用
  8. 数据分块加载——BigPipe 技术【类似facebook】
  9. 【ArcGIS微课1000例】0005:空间连接(Spatial Join)
  10. 【PhotoScan精品教程】任务二:刺像控点,平差,质量报告精度检查,像控点POS权重调配