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

fish-minuet 2019-12-27 原文

【六星教育-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结尾的扩展文件

 

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

 

通常我们传统的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初体验

根据官方手册来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:启动

 

发表于
2019-12-27 16:41 
鱼的小步舞曲 
阅读(
评论(

编辑

收藏

 

版权声明:本文为fish-minuet原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/fish-minuet/p/12108141.html

【六星教育-swoole-1911 swoole进阶-01快速入门】的更多相关文章

  1. 【六星教育-swoole-1911 swoole进阶-00环境安装】

    【六星教育-swoole-1911 swoole进阶-00环境安装】 前言 这里环境安装选择宝塔安装。那么为什 […]...

随机推荐

  1. 【视频处理】模拟视频与数字视频的区别

    模拟视频与数字视频的区别 模拟视频是指每一帧图像是实时获取的自然景物的真实图像信号。 我们在日常生活中看到的电 […]...

  2. Win10各版本区别

    Win10各版本之间的区别、、 —————R […]...

  3. Mybatis–第三部分:mybatis架构原理和源码剖析

    mybatis架构原理 1.架构设计    我们把Mybatis的功能架构分为三层: (1) API接⼝层: […]...

  4. js的跨域问题 和 jQuery的跨域问题

    实现跨域请求详解如下: 域名:Domain Name,又称网域、网域名城,是由一串用点分割的名字组成的Inte […]...

  5. 微信读书App来了 小伙伴们快去占榜吧

    微信读书App正式上线了,iOS版和Android版同时推出。届时将会出现像微信运动一样的霸榜小伙伴。资料显示 […]...

  6. Adobe 在中国为啥混不下去?

    摘要: 作为 Photoshop 的创造者,堂堂 Adobe 为啥在中国区说关门就关门?这事怪不得别人,还是得 […]...

  7. cookie注入原理详解(一)

    那我们还是围绕以下几个问题来看看cookie注入: 1.什么是cookie注入? 2.为什么要cookie注入 […]...

  8. 10大炫酷的HTML5文字动画特效欣赏

    文字是网页中最基本的元素,在CSS2.0时代,我们只能在网页上展示静态的文字,只能改变他的大小和颜色,显得枯燥 […]...

展开目录

目录导航