【六星教育-swoole-1911 swoole进阶-01快速入门】

前言

上一节课,说到了环境安装,安装了swoole。那么,我们可以通过命令php -m | grep swoole来查看安装的swoole扩展是否成功;通过命令php --ri swoole来查看swoole扩展的具体信息。对于一些安装swoole扩展之后,查看不到swoole时,主要是php-fpm没有重启的原因,重启一下php即可。

对swoole的理解

woole官网:https://www .swoole.com/

swoole文档:https://wiki.swoole.com/

开源中国源码:https://gitee.com/swoole/swoole/tree/master/

 

那什么是swoole呢?

 

Swoole是一个为PHP用C和C++编写的基于事件的高性能异步&协程并行网络通信引擎

 

那swoole能做什么呢?为什么swoole会这么火?火在哪里呢?

 

那么我们来拆分理解swoole:

1.swoole是php的一个扩展,是有C/C++来编辑的

2.swoole是基于 事件的 高性能 异步&协程并行 的 网络通讯引擎

 

php的扩展有很多,在windows下都是以.dll结尾的扩展文件,linux下都是以.so结尾的扩展文件

【六星教育-swoole-1911 swoole进阶-01快速入门】_第1张图片

【六星教育-swoole-1911 swoole进阶-01快速入门】_第2张图片

 

那么网络通讯引擎又是什么呢?

 

通常我们传统的web项目开发,我们都是通过ip地址或者域名来访问服务器,服务器就会解析并响应返回一些数据。那么这种都是人来控制电脑,通过浏览器来访问实现的。那么这种架构思想我们称为b/s架构。都是静态页面。

特点:用户访问浏览器,只会响应一次,通讯只有一次

 

我们还有一种通讯方式是c/s架构,客户端与服务端。程序电脑中运用广泛。

互动=》软件=》QQ 微信

特点:交互频率高,保持连接,保持通信

 

那么这两种都是网络通信。

 

网络通信就是程序之间,人与程序之间的通信,b/s,c/s 通信的架构

b/s =》通常是 短连接 =》短连接:一次请求一次结果

c/s =》有长连接,也有 短连接 =》 长连接:可以一直保持通信连接

【六星教育-swoole-1911 swoole进阶-01快速入门】_第3张图片

 

那高性能又是什么呢?

 

最直接的体现就是 响应快;还有一个是 资源消耗

 

那事件又是什么呢?

 

事件 =》 前端js事件为例:某个动作发生的前和后

 

swoole的事件又会以怎样的方式去开发编辑呢?

回调函数 ,正常的是以闭包的方式去写我们的事件

 

那异步又是什么呢?

 

ajax知识异步的实现。

异步:最少是两个进程,不一定是并行的。

场景:秒杀 =》 异步队列

 

swoole会开辟多个进程完成一些我们需要的操作

 

关于协程,在后面会说的。

 

网络就是程序之间的数据交流的连接,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个鼓励的设备进行连接,通过信息交换实现人与人,人与计算 机,计算机u计算机兼职的通信,网络通信最终要的就是网络通信协议。

【六星教育-swoole-1911 swoole进阶-01快速入门】_第4张图片

 

swoole的应用

swoole是网络通信引擎,可以再b/s,c/s架构上去运行,至于怎么去做,就另外说了。

传统的web框架配合swoole做到高性能,例如:laravel,tp6,yii;要求是基于ioc的方式。

1.swoole加速php =》ioc类型的框架

2.基于c/s架构,客户端/服务端(主要)

 

那什么是客户端和服务端呢? 

首先它们是相对而言的,服务和客户不是固定的。

服务主要是提供与服务这一方面: 就是能够帮助我们做一件某个事情, 比如 xxx恋爱秘籍 -》 就教我们恋爱技巧

而客户呢就是我们自己 去看这本秘籍 , 因为秘籍中提供了这些 恋爱 技巧的服务。

后来你的成为恋爱大师,要去教别人 那么这个时候你成为了 服务方, 他人就是客户

在这个过程中

【六星教育-swoole-1911 swoole进阶-01快速入门】_第5张图片

 

谈swoole能做什么不如谈c/s的应用。本质就是c/s的应用。

例如:及时聊天,及时通信

【六星教育-swoole-1911 swoole进阶-01快速入门】_第6张图片

 

swoole初体验

根据官方手册来copy

//创建Server对象,监听 127.0.0.1:9501端口

$serv = new Swoole\Server("127.0.0.1", 9501);

 

//监听连接进入事件

$serv->on('Connect'function ($serv$fd) {

echo "Client: Connect.\n";

});

 

//监听数据接收事件

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

$serv->send($fd"Server: ".$data);

});

 

//监听连接关闭事件

$serv->on('Close'function ($serv$fd) {

echo "Client: Close.\n";

});

 

//启动服务器

$serv->start();

 

对于连接服务来说主要是三大块的内容, 1;创建连接对象,2:server监听事件,3:启动

 

【六星教育-swoole-1911 swoole进阶-01快速入门】_第7张图片

你可能感兴趣的:(【六星教育-swoole-1911 swoole进阶-01快速入门】)