![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Swoole
文章平均质量分 69
东南西北中瓜
容万物,知进退,品世间百味,涉渡有限生涯。
展开
-
swoole_event_add实现异步
swoole提供了swoole_event_add函数,可以实现异步。此函数可以用在Server或Client模式下。swoole_event_add属于AsyncIO,必须运行在CLI 模式。异步tcp客户端stream_socket_client实现tcp同步客户端示例:<?php$start_time = microtime(TRUE);$fp = stream_socket_client("tcp://www.52fhy.com:80", $errno, $errs转载 2020-10-22 09:58:13 · 388 阅读 · 0 评论 -
thinkphp5集成swoole的方法
PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。前提:保证你的环境下已经安装好swoole拓展!如不知道怎么...转载 2020-01-13 10:39:18 · 1471 阅读 · 0 评论 -
swoole实现简单IM聊天室
服务端index.php<?php//服务器代码//创建websocket 服务器$ws = new swoole_websocket_server("0.0.0.0",9502);// open$ws->on('open',function($ws,$request){ echo "新用户 $request->fd 加入。\n"; $GLOBALS...转载 2019-12-12 09:08:33 · 621 阅读 · 0 评论 -
Swoole协程实现redis和mysql示例
协程:协程可以理解为纯用户态的线程,其通过协作而不是抢占来进行切换。相对于进程或者线程,协程所有的操作都可以在用户态完成,创建和切换的消耗更低。Swoole可以为每一个请求创建对应的协程,根据IO的状态来合理的调度协程,这会带来了以下优势: 开发者可以无感知的用同步的代码编写方式达到异步IO的效果和性能,避免了传统异步回调所带来的离散的代码逻辑和陷入多层回调中导致代码无法维护。 同...转载 2019-12-10 11:35:23 · 480 阅读 · 0 评论 -
Swoole任务生成CSV表格封装类
<?phpinclude 'vendor/autoload.php';class server{ private $serv; private $db; /** * [__construct description] * 构造方法中,初始化 $serv 服务 */ public function __construct(...转载 2019-12-10 11:23:46 · 457 阅读 · 0 评论 -
swoole快速入门
$serv = new swoole_server('0.0.0.0', 9501);$serv->set([ 'worker_num' => 4, //worker 进程数 cpu的1-4倍,可以采用 ps -aft|grep php 来查看 'max_request' => 10000,]);$serv->manager_pid; //管理进...原创 2019-12-10 09:37:54 · 107 阅读 · 0 评论 -
PHP Swoole 异步 redis 之 redis 服务安装
安装 redis下载 redis 地址: https://redis.iocd ~/Downloadstar -zxvf redis-4.0.9.tar.gzcd redis-4.0.9make启动服务:cd redis-4.0.9/src./redis-serverhiredis 地址: https://github.com/redis/hiredis/relea...转载 2019-12-08 16:44:37 · 76 阅读 · 0 评论 -
swoole websocket封装类和调用
Server代码:<?phpclass Ws { CONST HOST = "0.0.0.0"; CONST PORT = 9512; public $ws = null; public function __construct() { $this->ws = new swoole_websocket_server("0.0.0.0...转载 2019-12-08 13:38:06 · 393 阅读 · 0 评论 -
ThinkPHP5执行swoole异步任务
SERVER.PHP<?phpnamespace app\Console;use think\console\Command;use think\console\Input;use think\console\Output;class Websocket extends Command{ protected $server; protected function...转载 2019-11-20 10:24:13 · 846 阅读 · 0 评论 -
Swoole UDP服务端和同步客户端
server服务端代码:<?php/*** 创建 UDP服务端*///构建Server对象 内网$server = new Swoole\Server('服务器内网ip',9502,SWOOLE_PROCESS,SWOOLE_SOCK_UDP);//设置运行时参数$server->set(array(// 'daemonize' => true,...转载 2019-12-08 13:30:08 · 150 阅读 · 0 评论 -
Swoole TCP同步和异步方法
server.php代码:<?php/*** 创建一个swoole---TCP服务端* 参数1 监听地址* 参数2 端口*///构建Server对象 $server = new Swoole\Server('我的服务器内网ip',9501);//设置运行时参数$server->set(array(// 'daemonize' => tru...转载 2019-12-08 13:28:23 · 447 阅读 · 0 评论 -
swoole中使用task进程异步的处理耗时任务
swoole中有两大进程,分别是 master 主进程和 manager 管理进程。其中 master 主进程中会有一个主 reactor 线程和多个 reactor 线程,主要的作用就是用来维护TCP连接,处理网络IO,收发数据。而 manager 管理进程,作用则是 fork 和管理 worker 和 task 进程。worker 进程的作用是接收 reactor 线程传递的数据,...转载 2019-12-07 11:14:25 · 412 阅读 · 0 评论 -
Swoole笔记
Swoole是一个PHP扩展,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。源码安装wget -O swoole.zip https://github.com/s...转载 2019-12-06 16:52:29 · 291 阅读 · 0 评论 -
swoole同步和异步实例
TCP异步服务器:server.php<?php$serv=new swoole_server("127.0.0.1",9501); //创建TCP服务器$serv->set(array('task_worker_num'=>4)); //设置异步进程工作数//投递异步任务$serv->on("receive",function($serv,$fd,$f...原创 2019-11-20 09:55:29 · 336 阅读 · 1 评论 -
swoole实现发送聊天消息 (单发和群发)
一、服务端<?php$server = new swoole_websocket_server("0.0.0.0", 2345); //自己在阿里云后台开放2345端口$server->set(array( 'heartbeat_check_interval' =>600, 检查心里的间隔 'heartbeat_idle_time' =>6...转载 2019-12-07 12:59:54 · 687 阅读 · 0 评论 -
swoole多进程
<?phpecho posix_getpid().PHP_EOL;$info = array( "sendmail"=>1, "mailto"=>"12345@qq.com", "sendsms"=>1, "smsto"=>"123456");echo "start:".date("Y-m-d H:i:s").PHP_EOL;...转载 2019-12-07 13:11:10 · 132 阅读 · 0 评论 -
Swoole process以及task利用定时器进行动态加载进程池
<?phpclass BaseProcess{ private $process; private $process_list = []; private $process_use = []; private $worker_min_num = 3; private $worker_max_num = 6; private $current_num; public fun...转载 2019-12-07 16:30:59 · 442 阅读 · 0 评论