您的位置:首页 > 其它

[六星教育1911]swoole入门--------基础概念

2020-01-14 22:00 169 查看

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

学习swoole我们要首先了解下网络通信架构

B/S结构 (Browser/Server):又称浏览器/服务器模式。
这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

C/S结构(Client/Server,客户/服务器模式)
客户端需要安装专用的客户端软件。通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。客户端进行用户界面/事物处理,服务器进行数据处理。

两者比较

C/S架构 可以保持长连接,长时间未发送持续链接包将断开链接。
B/S 短链接 一次请求只返回一次结果,当用户访问浏览器,只会响应一次不可多次交互
b/s架构如果想实现客户端与服务端的双向通信,一般可以通过轮询或长轮询方式,但这两种方式相当消耗资源,如果访问量较高,也会对服务器造成一定的压力。此时就体现websocket的优势。

swoole与workman比较

有人说如果想实现双向通信workerman也可以啊,为何要使用swoole。一个东西得出现必然有出现的道理,相互比较择优选择才会更好。
swoole是PHP的一个扩展,由C/C++语言开发,对于内存管理,数据结构,通信协议等要比PHP开发的workerman效率高很多。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。
从本质来说,swoole属于C/S架构网络编程。
说了那么多让我们来看看swoole能做什么。
应用场景
聊天室开发、游戏、物联网等场景中都有应用。

下载swoole编译安装

环境准备 centos7
宝塔7.0
PHP 7.3
swoole :4.4.12

1.安装

swoole 是php 的扩展,支持在Linux 下,在window 下需要 安装cgywin,Cygwin是一个在windows平台上运行的类UNIX模拟环境
window安装参考https://www.cnblogs.com/chenjunwu/p/10953652.html

这里我们只演示在linux下的安装
https://github.com/swoole/swoole-src/releases下载对应版本
这里我们下载4.4.12这个版本
然后上传到服务器 对应目录 /www/server/swoole/

tar -zxvf swoole-src-4.4.12.tar.gz
cd /swoole-src-4.4.14
phpize
find / -name php-config    // 不要一对一复制,请根据实际情况查看
./configure --with-php-config=/www/server/php/73/bin/php-config
make
make install
编译安装完成后找到php.ini 文件
find / -name php.ini   //根据实际情况找到php.ini文件
vi /www/server/php/73/etc/php.ini
添加   extension=swoole.so
:wq  保存并退出
然后 /etc/init.d/php-fpm-73  restart
重启php-fpm

php --ri swoole | grep Vers 查看swoole版本

初体验

//   1.创建swoole  默认创建一个同步阻塞tcp服务
//创建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";
});
//  2.注册事件
//监听数据接收事件
$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->on('Start',function($serv){
echo '启动swoole'
})
// 3.启动服务器
$serv->start();  //阻塞与非阻塞

浏览器如何解析域名

1.域名解析:浏览器解析域名对应的IP地址;

//DNS Domain Name System 域名系统 将域名映射为IP地址的过程就称为“域名解析”。DNS就是进行域名解析的服务器

2.发起TCP的3次握手 :TCP 传输控制协议

//1.拿到IP地址后,浏览器第一次发起连接请求(试探),进入等待回复状态,(没有携带数据)

//2.服务器端接收到请求之后,如果同意连接,向客户端发送确认;

//3.客户端收到确认后需再发一次请求,此时携带要发送给Server的数据,服务器端收到客户端确认后,此时TCP连接,可以发起Http请求。

3.建立TCP连接后发起http请求

4.服务器响应http请求,浏览器得到html代码

5.浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)

6.浏览器对页面进行渲染呈现给用户

更好的学习了解swoole 我们可以下载这个组件
下载swoole-ide-helper

  • 点赞
  • 收藏
  • 分享
  • 文章举报
zhang233_666 发布了3 篇原创文章 · 获赞 0 · 访问量 44 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: