网络IO 十三

基于swoole http与websocket打造 非传统类型的框架

 

Swoole -> 常驻内存 -> 变量回收 -> 变量会变得很大

 

Php-fpm -> web

区别在于

1.swoole  http  server 是常驻内存

2.httpserver 继承于 server

这个类的组成有:http协议,请求,响应

网络IO 十三

Server内存管理机制

 

Server中对象的4层生命周期

对象:

变量,对象,资源,require/include的文件

 

1.程序全局期

针对整个swoole

在server->start之前就创建好的对象,这个变量在程序启动后一直就会存在,直到整个程序结束运行才会销毁。

但有一些服务器的程序可能会连续运行数月或数年,会被worker进程间共享。

程序全局require/include的文件的修改,不会因为服务的重启而失效,需要shutdow才会起效。

 

2.进程全局期

针对worker进程

Server启动后会创建多个进程

进程全局期只存在于进程的独享空间,每个进程都是独立存在的

require/include的文件的修改,服务的重启就会起效

网络IO 十三

 

3.会话期

针对于用户的连接

会话期是在onconnect后创建,或者是在onreceive时创建,onclose时销毁

加了 global就是会话期

 

4.请求期

针对于函数的执行、针对于用户的请求

没有global这个就是请求期

http.server的请求

Http\Request->rawContent 非正常接收的数据(json,xml)

 

Swoole => laravel,tp => swoole回收了系统的超全局变量

网络IO 十三

加速的原因

网络IO 十三

 

传统框架,读取PHP超全局变量 $_SERVER , $_GET,$_POST

http.server的响应

Http\Response->zip

Http\Response->write 分段向浏览器发送相应的内容

swoole加速框架