![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
easyswoole
文章平均质量分 69
easyswoole专栏
知其黑、受其白
每个优秀的人,都有一段沉默的时光,那段时光,是付出了很多努力,却得不到结果的日子,我们把它叫做扎根。
你可以从别人那里汲取某些思想,但必须用你自己的方式加以思考!
展开
-
PHP注册模式
PHP注册模式原创 2022-11-08 15:13:06 · 143 阅读 · 0 评论 -
PHP __callStatic() 拿不到参数的情况
PHP __callStatic() 拿不到参数的情况原创 2022-08-15 19:06:56 · 290 阅读 · 0 评论 -
php适配器模式
阅读目录test.phpAudioPlayer.phpMediaInterface.phpAdapter.phpAdvanceMp4Player.phpMediaAdvanceInterface.phpAdvanceWmaPlayer.phpadapter 目录test.php<?php/** * 结构型模式 * * php适配器模式 * 把实现了不同接口的对象通过适配器的方式组合起来放在一个新的环境 * * @author willem <https://wgchen.b原创 2021-11-25 19:19:13 · 89 阅读 · 0 评论 -
TCP UDP socket http webSocket 之间的关系
阅读目录OSI & TCP/IP 模型几者之间的关系HTTPSocketWebSocketwebSocket 概念webSocket 优点Websocket 的作用ajax轮询long pollWebsocketTCP三次握手OSI & TCP/IP 模型要弄清 tcp udp socket http websocket 之间的关系,首先要知道经典的OSI七层模型,与之对应的是TCP/IP的四层模型。从图中可以看出,tcp udp工作在传输层,http websocket 工作在应原创 2021-11-15 18:03:28 · 2987 阅读 · 0 评论 -
swoole 常用
阅读目录常用命令常用命令bash~$ php -m | grep swooleswoolebash~$ php --ri swoole | grep VersionVersion => 4.5.11swoole 安装信息查看php --ri swoole原创 2021-11-12 18:00:31 · 642 阅读 · 0 评论 -
PHP外观模式
阅读目录项目目录结构动物接口实体鸡工厂实体猪工厂外观类运行 php test.php项目目录结构结构型模式 - php外观模式把系统中类的调用委托给一个单独的类,对外隐藏了内部的复杂性,很有依赖注入容器的感觉哦 目录: D:\facadeMode LastWriteTime Length Name---- ------------- ------ -----a----原创 2021-09-30 11:38:34 · 137 阅读 · 0 评论 -
PHP享元(轻量级)模式
阅读目录项目应用目录动物接口实体鸡实体猪农场借助最简单的’工厂模式‘来实现享元模式项目应用目录结构型模式 - php享元(轻量级)模式就是缓存了创建型模式创建的对象。其次,享元强调的缓存对象,外观模式强调的对外保持简单易用,是不是就大体构成了目前牛逼哄哄且满大街的【依赖注入容器】下面我们借助最简单的’工厂模式‘来实现享元模式,就是给工厂加了个缓存池。 目录: D:\flyweightMode LastWriteTime原创 2021-09-30 11:23:47 · 137 阅读 · 0 评论 -
PHP桥接模式
阅读目录项目目录结构吃接口用筷子吃实体用叉子吃实体人抽象类男人实类运行示例知识点PHP interfase 对象接口实现一个接口,使用 implements 操作符PHP接口和常量演示PHP 5 支持抽象类和抽象方法项目目录结构 目录: D:\bridgeMode LastWriteTime Length Name---- ------------- ------ -----a----原创 2021-09-30 10:58:43 · 160 阅读 · 0 评论 -
PHP建造者模式
阅读目录场景硬件接口 `Hardware.php`摄像头实体 `HardwareCamera.php`处理器实体 `HardwareCpu.php`内存实体 `HardwareRam.php`屏幕实体 `HardwareScreen.php`储存实体 `HardwareStorage.php`构建器接口 `ProductInterface.php`Mp3构建器 `Mp3.php`手机构建器 `Phone.php`产品类 `Product.php`产品构建器 `ProductBuilder.php`场景原创 2021-09-22 11:03:33 · 178 阅读 · 0 评论 -
PHP原型模式
阅读目录场景抽象类示例原型接口 `PrototypeAbstract.php`原型实体 `Prototype.php`运行测试场景 示例目录:Prototype 所有文件在此目录下。抽象类PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。 继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必原创 2021-09-18 18:31:30 · 84 阅读 · 0 评论 -
Swoole+Redis+webSocket实现点对点即时聊天
Swoole+Redis+webSocket实现点对点即时聊天场景webSocket服务端代码前端代码场景Swoole+Redis+webSocket实现点对点即时聊天。webSocket服务端代码我们需要通过Laravel Command来实现,因为Swoole只能运行在PHP CLI模式下。1.生成Command类php artisan make:command SwooleServer2.编写webSocket Server逻辑<?phpnamespace App\Conso原创 2021-08-31 19:32:30 · 527 阅读 · 0 评论 -
Laravel + Swoole 打造IM简易聊天室
Laravel + Swoole 打造IM简易聊天室应用场景:实现简单的即时消息聊天室(一)扩展安装(二)webSocket服务端代码(三)客户端实现应用场景:实现简单的即时消息聊天室(一)扩展安装pecl install swoole安装完成后可以通过以下命令检测Swoole是否安装成功php -m | grep swoole(二)webSocket服务端代码我们需要通过Laravel Command来实现,因为Swoole只能运行在PHP CLI模式下。1.生成Command类php原创 2021-08-31 17:34:44 · 1133 阅读 · 0 评论 -
PHP孤儿进程
阅读目录场景孤儿进程和僵尸进程僵尸进程孤儿进程场景孤儿进程指的是在其父进程执行完成或被终止后仍继续运行的一类进程。这些孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。孤儿进程没有任何危害,只是需要注意自己的代码逻辑即可. 例如:<?php$pid = pcntl_fork();if ($pid == -1) { die('fork error');} else if ($pid>0) { echo "爸爸先走了,儿子你好好干活\原创 2021-08-30 18:10:22 · 179 阅读 · 0 评论 -
PHP僵尸进程
阅读目录僵尸进程回收僵尸进程僵尸进程僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。在unix进程管理中,如果你新开的子进程运行结束,父进程将会收到一个SIGCHLD信号,子进程成为僵尸进程(保存了进程的状态等信息),等待父进程的处理,如果父进程一直不处理,该进程将会一直存在,占用系统进程表项,如果僵尸进程过多,导致系统没有可用的进程表项,于是再也无法运行其他的程序。<?php$num = 1;$str = "EasySwoo原创 2021-08-30 17:57:28 · 256 阅读 · 0 评论 -
swoole TCP、UDP、HTTP使用实例
阅读目录TCPTCP_SERVER.phpTCP_CUSTOMER.phpUDPUDP_SERVER.phpUDP_CLIENT.phpHTTP指定访问html目录,TCPTCP_SERVER.php<?phpclass TCP{ private $server = null; public function __construct(){ //创建Server对象,监听 127.0.0.1:9501 端口 $this->serve原创 2021-08-30 12:15:14 · 327 阅读 · 0 评论 -
swoole用WebSocket服务器搭建一个简易的聊天室功能
swoole用WebSocket服务器搭建一个简易的聊天室功能域名无ssl加密域名有ssl加密开启服务端常链接浏览器分别开启两个客户端窗口,进行聊天域名无ssl加密WS.php写服务端代码<?phpclass WS{ private $ws = null; public function __construct(){ //创建WebSocket Server对象,监听0.0.0.0:9502端口 $this->ws = new S原创 2021-08-30 11:52:21 · 397 阅读 · 0 评论 -
Swoole内存-table详解
Swoole内存-table详解前言创建内存表增删查操作前言高性能共享内存 Table由于 PHP 语言不支持多线程,因此 Swoole 使用多进程模式,在多进程模式下存在进程内存隔离,在工作进程内修改 global 全局变量和超全局变量时,在其他进程是无效的。创建内存表<?php//创建内存表(1204行)$table = new swoole_table(1204);//内存表增加一行(创建字段)$table->column('id',$table::TYPE_INT,8原创 2021-08-11 18:41:22 · 740 阅读 · 0 评论 -
swoole进程详解
swoole进程详解进程详解开启进程Process.phphttp_server.php跟踪查看父进程查看开启的子进程树形目录查看进程master,work进程分析exec执行服务端进程详解进程就是正在运行程序的一个实例开启进程Process.php<?php$process = new Swoole\Process('callback_function', true);$pid = $process->start();function callback_function(原创 2021-08-11 18:16:52 · 680 阅读 · 0 评论 -
swoole-协程 Redis 客户端
swoole-协程 Redis 客户端Redis写入值Redis写入值<?phpuse Swoole\Coroutine\Redis;use function Swoole\Coroutine\run;run(function () { $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('123456'); $val = $redis->set('n原创 2021-08-11 17:26:18 · 350 阅读 · 0 评论 -
swoole协程 MySQL 客户端
swoole协程 MySQL 客户端事务、更新、查询事务、更新、查询<?phpuse Swoole\Coroutine\MySQL;use function Swoole\Coroutine\run;run(function () { $db = new MySQL(); $ret1 = $db->connect([ 'host' => '127.0.0.1', 'port' => 3306,原创 2021-08-11 17:18:15 · 251 阅读 · 0 评论 -
Swoole-WebSocket毫秒定时器
Swoole毫秒定时器简介别名应用Ws.phpindex.html简介常规定时器:linux crontabSwoole定时器swoole_timer_tickswoole_timer_after别名tick()、after()、clear() 都拥有一个函数风格的别名类静态方法函数风格别名Swoole\Timer::tick()swoole_timer_tick()Swoole\Timer::after()swoole_timer_after()Swoo原创 2021-08-11 16:08:26 · 474 阅读 · 0 评论 -
Swoole—WebSocket—Task任务使用
Swoole Task任务使用使用场景:应用Ws.phpindex.html预览使用场景:执行耗时操作(发送邮件 广播等)如何使用onTaskonFinish设置task_worker_num应用Ws.php<?php/*ws 优化 基础类库*/class Ws{ CONST HOST = "0.0.0.0"; CONST PORT = 8812; public $ws = null; public function __construct(){ $thi原创 2021-08-11 15:40:38 · 337 阅读 · 0 评论 -
Swoole WebSocket服务
swoole什么是websockt?Swoole WebSocket服务服务端示例前端示例应用1 运行程序2 预览3 代码优化什么是websockt?websocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信—— 允许服务器主动发送信息给客户端。为什么需要websocket缺陷:HTTP的同学只能有客户端发起WebSocket 特点建立在TCP协议之上性能开销小通信高效客户端可以与任意服务器通信协议标识符ws wss持久化网络通信协议原创 2021-08-10 20:10:02 · 320 阅读 · 0 评论 -
laravel-s实现高性能webSocket服务
laravel-s实现高性能webSocket服务1 安装基于 LaravelS 构建 HTTP 服务器2 在 Laravel 中集成 Swoole 实现 WebSocket 服务器1 修改配置文件2 创建 WebSocketService 类3 测试新建一个控制器和视图和路由view视图预览效果1 安装首先PHP需要安装swoole扩展,仅支持 Linux、FreeBSD、MacOS 三种操作系统。安装 laravel,安装 LaravelS 扩展包。[root@bogon laravels]#原创 2021-07-01 15:36:16 · 1906 阅读 · 0 评论 -
Swoole内置功能
Swoole内置功能Swoole 是使用 C 和 C++ 语言编写的PHP扩展, 内置了异步非阻塞、多线程的网络IO服务器,PHP程序员仅需处理事件回调即可,无需关心底层。与大家熟知的 Workerman 框架不同,Swoole更像是一个基础库给了开发者一把无比锋利的宝剑,可以按照自己想要的方法去使用。Swoole绝大部分功能都只能运行在 CLI 模式下,也正因为此开发者可以完全的掌控Server的一切,与传统的 php-fpm 模式不同,Swoole需要开发者自行接管各种相关事件,和管理变量的生命原创 2021-06-18 18:58:30 · 191 阅读 · 1 评论 -
PHP面向对象OOP编程
PHP面向对象OOP编程面向对象的概念面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持。如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的。下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法。我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境。和其他编程语言有所不同的是,在PHP中,操作数据库的 是一系列的具体功能函数(如果你不使用ODBC接口的话)。这样做虽原创 2021-05-19 12:26:03 · 735 阅读 · 7 评论 -
Swoole异步投递task任务
Swoole异步投递task任务实现实例前提:需要安装swoole【使用场景】Swoole的 task 模块可以用来做一些异步的慢速任务、耗时场景。如webim中发广播,发送邮件等,把这些任务丢给task进程之后,worker进程可以继续处理新的数据请求,任务完成后会异步通知worker进程告诉它此任务已经完成。此外利用 task 还可以实现PHP的数据库连接池,异步队列等。【使用须知】必须设置Task进程数:task_worker_num投递一个异步任务到task_worker池中:Se原创 2021-04-30 11:43:43 · 481 阅读 · 4 评论 -
PHPSPL 标准库
PHPSPL 标准库SPL是Standard PHP Library(PHP标准库)的缩写。官网说,SPL是用来解决典型问题(common problems)的一组接口与类的集合。那么,什么是common problems呢?- 数据结构 解决数据怎么存储问题- 元素遍历 数据怎么查看- 常用方法的统一调用 数组、集合大小 自定义遍历- 类自动加载 spl_autoload_register包含哪些内容?数据结构基础接口基础函数迭代器异常原创 2021-04-25 14:42:07 · 194 阅读 · 0 评论 -
PHP策略模式
PHP策略模式原创 2021-04-23 15:22:54 · 1349 阅读 · 0 评论 -
PHP观察者模式
PHP观察者模式原创 2021-04-22 21:51:54 · 2368 阅读 · 0 评论 -
PHP 门面设计模式
PHP 门面设计模式概念提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。本质:就是化零为整;引入一个中介类,把各个分散的功能组合成一个整体,只对外暴露一个统一的接口。实例A其实门面模式这个思想在现实生活中到处都是,几乎我们使用的每个产品都是由很多小的子系统组合而成,但是每个产品都对外提供了统一的用户接口。比如我们要在淘宝买东西,我基本上只需要鼠标点一些按钮就完成了,但是实际上网站的后台是很多个子系统一起去完成你购买商品的任原创 2021-04-22 21:10:59 · 458 阅读 · 3 评论 -
PHP组合模式
PHP组合模式组合模式将对象组合成树形结构,以表示‘部分-整体’的层次结构。在组合模式,客户端访问独立对象和组合对象(或称对象集合)一样。独立对象是一个有特定功能的对象,它不引用其他任何其他对象。组合对象提供相似功能对象的集合,主要用来管理独立对象,并为客户端提供和独立对象一样的访问方式。接下来,我们就以目录和文件来举例,利用它们的一个相同的功能“查看大小”来举例。问题在文件系统中,我们有文本文件、图片文件、视频文件等类型的文件。它们格式不同,但都有容量大小。现在,我们创建文本和图片文件两原创 2021-04-22 20:40:56 · 365 阅读 · 0 评论 -
PHP适配器模式
PHP适配器模式原创 2021-04-22 16:28:53 · 494 阅读 · 0 评论 -
PHP单例模式
单例模式,正如其名,允许我们创建一个而且只能创建一个对象的类。这在整个系统的协同工作中非常有用,特别明确了只需一个类对象的时候。那么,为什么要实现这么奇怪的类,只实例化一次?在很多场景下会用到,如:配置类、Session类、Database类、Cache类、File类等等。这些只需要实例化一次,就可以在应用全局中使用。本文我们以数据库类为例。问题如果没有使用单例模式,会有什么样的问题?如下是一个简单的数据库连接类,它没有使用单例模式。每个对象都分配一个新的资源ID,都是新的引用,它们占原创 2021-04-22 15:02:41 · 124 阅读 · 0 评论 -
PHP 工厂模式
PHP 工厂模式原创 2021-04-22 14:27:45 · 2374 阅读 · 0 评论 -
PHP设计模式看懂UML类图和时序图
PHP设计模式看懂UML类图和时序图UML类图是一种结构图,用于描述一个系统的静态结构。类图以反映类结构和类之间关系为目的,用以描述软件系统的结构,是一种静态建模方法。类图中的类,与面向对象语言中的类的概念是对应的。车的类图结构为< abstract >,表示车是一个抽象类;它有两个继承类:小汽车和自行车它们之间的关系为实现关系,使用带空心箭头的虚线表示;小汽车为与SUV之间也是继承关系:它们之间的关系为泛化关系,使用带空心箭头的实线表示;小汽车与发动机之间是组合关系原创 2021-04-22 12:06:24 · 428 阅读 · 0 评论 -
PHP设计模式
PHP设计模式设计模式就是一些 编程的套路,不是具体的攻防动作,是为设计更好系统设计的解决方案。面向对象的原则是 “组合优于继承”,因为组合可以以多种方式动态的处理任务。虽然对象的组合会导致代码的可读性下降,但会让系统更加灵活,复用性更高。设计模式是很多前辈花费大量精力总结的经验,是经过检验的高效的一系列对象组合方式。共12种经典的设计模式参考资料Design Patterns in Java Tutorial图说设计模式...原创 2021-04-22 10:06:29 · 147 阅读 · 0 评论