Swoole快速入门

我们可以通过命令

php -m | grep swoole

来查看安装的swoole扩展是否成功;

通过命令

php --ri swoole

来查看swoole扩展的具体信息。

对于一些安装swoole扩展之后,查看不到swoole时,主要是php-fpm没有重启的原因,重启一下php即可。

 

对swoole的理解


那什么是swoole呢?

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

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

 

那么我们来拆分理解swoole:

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

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

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

 

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

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

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

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

互动=》软件=》QQ 微信

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

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

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

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

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

 

那高性能又是什么呢?

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

 

那事件又是什么呢?

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

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

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

 

那异步又是什么呢?

ajax知识异步的实现。

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

场景:秒杀 =》 异步队列

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

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

网络就是程序之间的数据交流的连接,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。

网络通信是通过网络将各个鼓励的设备进行连接,通过信息交换实现人与人,人与计算 机,计算机u计算机之间的通信,网络通信最终要的就是网络通信协议。

 

swoole的应用

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

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

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

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

 

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

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

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

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

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

在这个过程中

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

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

 

swoole初体验

根据官方手册

//创建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:启动

评论