swoole
yilegel
这里不会有详细、高深的东西。只是把别人的东西实践了一次,再加些自己的理解。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
什么叫多进程编程~~~深刻体会
swoole中process的应用(用过协程后再用才有体会)原创 2020-10-26 20:58:33 · 223 阅读 · 0 评论 -
hyperf学习过程~~~延展学习积累
1、中文乱码 swoole里: Swoole\Http\Response->header(string $key, string $value, bool $ucwords = true); hyperf里面操作: return $response->withHeader('Content-Type', 'text/html;charset=utf-8')->withHeader('Server', 'Hyperf')->withStatus(500)->withBody(ne原创 2020-10-26 12:22:49 · 1244 阅读 · 0 评论 -
一次句话明白hyperf为什么这么多Interface,且没有用new和具体的实例。
每个组件都有个ConfigProvider->__invoke()->depandencies 就这一句话,把其他框架的设计思维统统甩一条街。 就这么一句话把高级框架的高级点全部包含: 依赖注入 面对接口编程 设计模式-工厂模式 class ConfigProvider { public function __invoke(): array { return [ 'dependencies' => [原创 2020-10-23 16:22:52 · 843 阅读 · 0 评论 -
websocket的本质。 websocket一直返回200状态码、504码,搞了一下午。下次遇到知道就是后端的问题。
websocket请求流程: 1、ws原本也是http请求 在服务器转换了一次。 Switching Protocols切换协议 因为ws的header头里面有两个重要参数 Upgrade、Connection 2、因为websocket是继承的http服务器,所以路由不对会返回200, 完全没有router或完全错误时50x状态码 ...原创 2020-10-19 21:12:54 · 7536 阅读 · 7 评论 -
swoole学习的细节积累
一、Http继承Tcp后,不能使用onConnect/onReceive 二、tcp怎么长连接(只返回一次) //怎么让客户端保持长链接???设置长超时 + 服务端长时间不返回信息(sleep()函数模拟) 三、由 一 可知: 有继承关系的只使用最后一个子类 是很强大类,包含功能最多。 请在子类中放心使用父类的东西 四、 ...原创 2020-10-12 19:05:26 · 1482 阅读 · 0 评论 -
swoole的官网怎么学习。彻底理清swoole架构
欠缺的地方: 1、给一段示例代码不知道怎么用。 这个网站给了一个思路:初学者有很多考虑不到的地方,需要跟着牛人深挖这些“示例”。 2、官方的代码只是给出了部分功能、和一些使用思路。 swoole的代码启动之后就不能改了。onTask()和Swoole\Process创建的进程,在启动之后就固定了具有什么功能(比如:分析CSV文件、搞mysql、redis等),难道一个任务启动一批进程?那得多少进程?(官网给出的例子好像都是一个进程一个任务,且都是在启动的时候就把业务流程做完了,这可能吗?)。 所以: A、固原创 2020-10-10 19:18:40 · 1924 阅读 · 0 评论 -
线程是来干嘛的
PHP为什么没有线程,了解这个就了解了大半个编程世界。 所以:多看别人的博客、论坛、讨论(这个最深度、全面)。 参考: php本身不支持多线程的原因是什么,java为什么可以,php就不行? 吴子棋的回答我非常赞同。 php的多线程是做后台任务物理的。 以前我也一直纠结于PHP实现多线程,但多线程对PHP内核以及整个生态的关联太大了,对于 php-fpm 的 web 来说,多线程其实没多大意义。只有在后台运行复杂的任务时才有意义, 不同语言不同的特性。不要非得在PHP上追求go的并发特性。可以原创 2020-10-09 17:46:03 · 492 阅读 · 0 评论 -
一图理解进程、线程。【结合真是生活(不仅仅是懵逼、不实际的概念)】
总结: 个人理解:多进程、协程的区别: 相同点: 都是达到并发的处理很多任务的目的 不同点: 1、达到并发:协程是一个进程。进程必须多个。 2、没有等待、阻塞的情况下,协程没毛用。因为CPU一直在运行,没有空闲时间搞什么并发去。 参照物就是结合实际: 参照物很重要: php-fpm或swoole的多worker,都是多进程。 这里的多,是针对网络上大批量的请求而言的。处于网络请求阶段的多,处理很多网络请求。 而我现在是要多进程处理一个文件。 这个多的时间点是:某一个网络请求后,目的:想要再启动多个进程分开处原创 2020-10-09 16:39:14 · 315 阅读 · 0 评论 -
easyswoole的核心代码-看懂请求到返回流程
重点: swoole是常驻内存。cli命令启动后所有的程序都在内存了。如果要调试,需在改代码后重启,并在命令行中查看(非浏览器中)。 前半段的启动(后台的9501端口的启动)没有展示,很容易看出来就算了。 内存管理 = 生命周期 = 框架流程 = 编程 疑问: 类、变量都是什么时候加载到内存中的??? 一图看完流程: ...原创 2020-09-15 18:52:28 · 456 阅读 · 0 评论 -
内存管理、内存泄漏检查
内存指标: 如何正确查看进程的内存占用 Linux命令: 查看RSS: ps -aux | grep swoole 第6列 RSS top 的RES 查看USS: smem -M php | grep swoole原创 2020-09-15 17:42:25 · 399 阅读 · 0 评论 -
easyswoole的核心文件
<?php /** * Created by PhpStorm. * User: yf * Date: 2018/5/28 * Time: 下午6:07 */ namespace EasySwoole\EasySwoole; use EasySwoole\Component\Di; use EasySwoole\Component\Process\AbstractProcess; use EasySwoole\Component\Process\Manager; use EasySw.原创 2020-09-14 20:45:51 · 303 阅读 · 0 评论
分享