查看: 153|回复: 1

[综合] PHP 异步协程引擎 Swoole 6.2 正式发布!

[复制链接]
  • 打卡等级:Lv2.初来乍到
  • 打卡总天数:5
  • 打卡月天数:1
  • 打卡总奖励:867
  • 最近打卡:2026-04-06 01:42:28
连胜新星
连胜新星
连续获得3场胜利
胜利勋章 · 中级
首胜纪念
首胜纪念
获得第一场胜利
胜利勋章 · 初级
人机挑战者
人机挑战者
在人机对战中击败AI
特殊成就勋章 · 中级
五子棋新手
五子棋新手
在五子棋中完成第一局游戏
游戏专项勋章 · 初级
初出茅庐
初出茅庐
完成第一局游戏
活跃度勋章 · 初级
象棋新手
象棋新手
在中国象棋中完成第一局游戏
游戏专项勋章 · 初级

25

主题

1

回帖

2735

积分

管理员

金币
2489
阅读权限
255
精华
0
威望
0
贡献
0
在线时间
120 小时
注册时间
2014-8-16
发表于 2026-3-15 13:12:47 | 显示全部楼层 |阅读模式
✨️ 新特性
  • 新增协程化FTP客户端,现通过编译时加入--enable-swoole-ftp选项,即可启用FTP操作的协程化支持,避免网络阻塞
  • 新增协程化SSH客户端,现通过编译时加入--enable-swoole-ssh选项,即可启用SSH操作的协程化支持,提升并发效率
  • 新增HTTP协程服务端支持io_uring,HTTP协程服务端现可选用高性能的io_uring事件机制。在编译时加入--enable-uring_socket选项即可启用,以获得更优的 I/O 性能
  • 新增Swoole\RemoteObject\Server模块,为MongoDB提供透明化的协程操作支持
  • 新增Swoole\Coroutine::setTimeLimit()函数,用于控制协程执行超时时间,防止协程长时间占用资源
  • 为HTTP静态文件服务器添加URL重写支持
  • 新增对pdo_firebird的协程化支持
  • 支持PHP 8.5
  • 支持协程化 gethostbyname函数
  • 优化Server::shutdown()的实现,在Process模式下将信号通信替换为管道通信
  • 在 Swoole 的 HTTP 服务器(包括 Swoole\Http\Server、Swoole\Http2\Server 和 Swoole\Coroutine\Http\Server)的回调函数中,Swoole\Http\Request 对象的 server 属性新增了 server_addr 字段,该字段用于标识服务端的 IP 地址
  • Swoole\Coroutine::cancel 现支持取消所有iouring操作

    注:SSH、FTP协程客户端与PHP的ext-ssh、ext-ftp无法共存,若要开启此项特性,需禁用PHP的ssh和ftp扩展

    🐛 Bug修复
    • 修复 HTTP2 服务器会话(session)在多线程环境下发生多次释放的问题
    • 修复在8.5版本中,子进程fork或者子线程生成后需执行refresh_memory_manager(),否则将导致程序崩溃的问题
    • 修复macOS系统中swoole_get_local_mac函数无法正常工作的问题
    • 修复了在多线程环境下用户手动挂起协程时可能引发的崩溃问题
    • 修复在 Alpine 系统下的编译错误
    • 修复函数钩子(hook)调用失败时的内存泄漏问题
    • 修复pdo_sqlite和pdo_oci协程化过程中的线程安全问题
    • 修复sw_php_print_backtrace函数,使其输出与 PHP 内置函数的回溯信息格式保持一致
    • 修复因启用 --enable-uring-socket、--enable-trace-log 和 --enable-error-log 导致的编译失败问题
    • 修复因为宏定义不存在的问题,导致pdo_firebird无法编译的问题
    🛠️ 优化
    • 执行php --ri swoole会输出libpq的版本信息
    • 优化文件协程化操作中的io_uring相关逻辑
    • 在添加事件失败时输出 PHP 调用堆栈信息
    • 优化swoole_get_local_ip和swoole_get_local_mac函数的实现代码
    • 优化文件锁的协程化等待时间,避免指数递增的睡眠时间导致锁越来越难获取
    • 提升了对Android平台的兼容性
    📢 注意
    • 移除了--enable-openssl编译选项,现在默认包含对OpenSSL的支持
    • --enable-uring-socket需要明确指定--enable-iouring或者--with-liburing-dir其中一个
    • 不再支持PHP8.1
    • liburing要求的最低版本是2.8

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部