您的位置 首页 php

Swoole 4.5 发布,新增多项新特性,这些你都掌握了吗?

v4.5.0,这是一个大版本更新,在 4.5 版本中移除了 4.4 版本中标记为已废弃的特性,大幅优化了异步 Server 消息回调函数的性能。增强了对于 PHP-FPM 互调用的支持。

新增 API

  • DTLS支持, 现在我们可以此来构建WebRTC应用 (#3188) (@matyhtf)
  • 内置的FastCGI客户端, 我们可以通过一行代码来代理请求到FPM或是调用FPM应用 (swoole/library#17) (@twose)
  • Co::wait, Co::waitPid (用于回收子进程) Co::waitSignal (用于等待信号) (#3158) (@twose)
  • Co::waitEvent (用于等待 Socket 上发生的指定的事件) (#3197) (@twose)
  • Co::set([‘exit_condition’ => $callable]) (用于自定义程序退出的条件) (#2918) (#3012) (@twose)
  • Co::getElapsed (获取协程运行的时间以便于分析统计或找出僵尸协程) (#3162) (@doubaokun)
  • Socket::checkLiveness (通过系统调用判断连接是否活跃), Socket::peek (窥视读缓冲区) (#3057) (@twose)
  • Socket->setProtocol([‘open_fastcgi_protocol’ => $bool]) (内置的FastCGI解包支持) (#3103) (@twose)
  • Server::get(Master|Manager| Worker )Pid, Server::getWorkerId (获取异步Server单例和其信息) (#2793) (#3019) (@matyhtf)
  • Server::getWorkerStatus (获取worker进程状态, 返回常量SWOOLE_WORKER_BUSY, SWOOLE_WORKER_IDLE以表示忙闲状态) (#3225) (@matyhtf)
  • Server->on(‘beforeReload’, $callable) 和 Server->on(‘afterReload’, $callable) (服务重启事件, 发生在manager进程) (#3130) (@hantaohuang)
  • Http\Server静态文件处理器现在支持http_index_files和http_autoindex配置 (#3171) (@hantaohuang)
  • Http2\Client->read(float $timeout = -1)方法支持读取流式的响应 (#3011) (#3117) (@twose)
  • Http\Request->getContent (rawContent方法的别名) (#3128) (@hantaohuang)
  • swoole_mime_type_(add|set|delete|get|exists)() (mime相关APIs, 可增删查改内置的mime类型) (#3134) (@twose)

增强

  • 优化Master和Worker进程间的内存拷贝(极限情况下提升了四倍性能) (#3075) (#3087) (@hantaohuang)
  • 优化WebSocket派遣逻辑 (#3076) (@matyhtf)
  • 优化WebSocket构造帧时的一次内存拷贝 (#3097) (@matyhtf)
  • 优化 SSL 验证模块 (#3226) (@matyhtf)
  • 分离SSL accept和SSL handshake, 解决慢速SSL客户端可能会造成协程服务器假死的问题 (#3214) (@twose)
  • 支持MIPS架构 (#3196) (@ekongyun)
  • UDP 客户端现在可以自动解析传入的域名 (#3236) (#3239) (@huanghantao)
  • Coroutine\Http\Server增加支持了一些常用的选项 (#3257) (@twose)
  • 支持在WebSocket握手时设置cookie (#3270) (#3272) (@twose)
  • 支持CURLOPT_FAILONERROR (swoole/library#20) (@sy-records)
  • 支持CURLOPT_SSLCERTTYPE, CURLOPT_SSLCERT, CURLOPT_SSLKEYTYPE, CURLOPT_SSLKEY (swoole/library#22) (@sy-records)
  • 支持CURLOPT_HTTPGET (swoole/library@d730bd08) (@shiguangqi)

移除

  • 移除Runtime::enableStrictMode方法 (b45838e3) (@twose)
  • 移除Buffer类 (559a49a8) (@twose)

内核相关

  • 新的C++的API: coroutine::async函数传入lambda即可发起异步线程任务 (#3127) (@matyhtf)
  • 重构底层event-API中的整数型fd为swSocket对象 (#3030) (@matyhtf)
  • 所有核心的C文件都已转化为C++文件 (#3030) (71f987f3) (@matyhtf)
  • 一系列代码优化 (#3063) (#3067) (#3115) (#3135) (#3138) (#3139) (#3151) (#3168) (@hantaohuang)
  • 对于头文件的规范化优化 (#3051) (@matyhtf)
  • 重构enable_reuse_port配置项使其更加规范 (#3192) (@matyhtf)
  • 重构Socket相关API使其更加规范 (#3193) (@matyhtf)
  • 通过缓冲区预测来减少一次不必要的系统调用 (3b5aa85d) (@matyhtf)
  • 移除底层的刷新定时器swServerGS::now, 直接使用时间函数获取时间 (#3152) (@hantaohuang)
  • 优化协议配置器 (#3108) (@twose)
  • 兼容性更好的C结构初始化写法 (#3069) (@twose)
  • bit字段统一为uchar类型 (#3071) (@twose)
  • 支持并行测试, 速度更快 (#3215) (@twose)

修复

  • 修复enable_delay_receive开启后onConnect无法触发的问题 (#3221) (#3224) (@matyhtf)
  • 所有其它的bug修复都已合并到v4.4.x分支并在更新日志中体现, 在此不再赘述。

swoole、分布式之所以门槛高,主要体现在三方面:

在“疫情”期间已经淘汰了一批末端的业务coder,现在是自己努力成为资深程序员的好时机,才能在面对高薪职位邀请时,做到胸有成竹。为了大家能够顺利进阶PHP中高级程序员、架构师,我为大家准备了一份中高级的教程福利!

作为web开发的佼佼者PHP并不逊色其他语言,加上swoole后更加是如虎添翼!进军通信 、物联网行业开发百度地图、百度订单中心等!年后更是霸占程序员招聘语言第二名,寒冬裁员期过后正是各大企业扩大招人的时期,现在市场初级程序员泛滥,进阶中高级程序员绝对是各大企业急需的人才,这套教程适合那些1-6年的PHP开发者进阶中高级提升自己,在春招中找到高薪职位!

领取方式:点赞关注小编后私信【资料】获取资料领取方式!

部分资料展示:

领取方式:点赞关注小编后私信【资料】获取资料领取方式!

文章来源:智云一二三科技

文章标题:Swoole 4.5 发布,新增多项新特性,这些你都掌握了吗?

文章地址:https://www.zhihuclub.com/78949.shtml

关于作者: 智云科技

热门文章

网站地图