2020
08-31
08-31
Swoole 实现协程基本概念和底层原理 HOT
协程可以理解为纯用户态的线程,其通过协作而不是抢占来进行切换,相对于进程或者线程,协程所有的操作都可以在用户态完成,创建和切换的消耗更低,Swoole 可以为每一个请求创建对应的协程,根据 IO 的状态来合理的调度协程。
继续阅读 >
PHP 代码分享
MongoDB 教程
正则表达式
jQuery 教程
JavaScript 代码片段
PHP7 教程
协程可以理解为纯用户态的线程,其通过协作而不是抢占来进行切换,相对于进程或者线程,协程所有的操作都可以在用户态完成,创建和切换的消耗更低,Swoole 可以为每一个请求创建对应的协程,根据 IO 的状态来合理的调度协程。
继续阅读 >
我们知道,swoole中有两大进程,分别是 master 主进程和 manager 管理进程。
其中 master 主进程中会有一个主 reactor 线程和多个 reactor 线程,主要的作用就是用来维护TCP连接,处理网络IO,收发数据。
而 manager 管理进程,作用则是 fork 和管理 worker 和 task 进程。
继续阅读 >
服务端,我们平时工作学习中接触比较多的就是 nginx 和 apache 作为 webServer,二者都是通过监听某个端口对外提供服务, swoole 的 server 也不例外,同样需要绑定端口,才可以提供给客户端相关服务;
继续阅读 >
计算机的核心是 CPU ,它承担了所有的计算任务,就像一座工厂,时刻在运行。
从上面的例子可以知道进程是由多个线程组成的,一个进程至少要有一个线程,实际上,线程是操作系统中最小的执行单元
继续阅读 >
背景说明:
公司现有项目是基于laravle5.5开发的,随着业务的增长php及框架的短板也凸显出来,于是准备使用swoole扩展来解决并发问题,以下是记录安装swoole的过程。
环境说明及版本说明:
Homestead v10.7.0
swoole v4.4.17
php v7.3
继续阅读 >
连接池定义
永不断开,要求我们的这个程序是一个常驻内存的程序。数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。
继续阅读 >
简单来说,WebRTC 是一个音视频处理+及时通讯的开源库。在实时通信中,音视频的采集和处理是一个很复杂的过程。比如音视频流的编解码、降噪和回声消除等。由Google发起开源,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,我们可以通过技术快速地构建出一个音视频通讯应用。虽然其名为WebRTC,但是实际上它不只是支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通。
继续阅读 >
在Swoole最新发布的v4.5(RC)版本中,我们实现了一项非常有意思的新特性,那就是协程版本的FastCGI客户端。
那么什么是FastCGI呢?首先先来一个官方解释:快速通用网关接口是一种让交互程序与Web服务器通信的协议。
继续阅读 >
PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。
继续阅读 >
Swoole Server应该是Swoole工具中最重要也是最核心的一个了,但没有网络服务程序开发基础的童鞋刚接触的时候往往会一头雾水,这里我们返本归元,先聊聊Server在干什么,然后我们再看看Swoole Server是怎样跑起来的~
继续阅读 >