Composer怎么安装Ratchet库 WebSocket服务搭建教程【实操】

发布时间 - 2026-02-02 00:00:00    点击率:
Ratchet 已停止维护,Composer 安装 ratchet/ratchet 会失败或引发严重兼容问题(PHP 8+、ReactPHP v1.0+、symfony/event-dispatcher v6+ 等均不兼容),新项目不应使用。

直接说结论:Ratchet 已停止维护,Composer 安装 ratchet/ratchet 会失败或引入严重兼容问题(PHP 8+、ReactPHP v1.0+、symfony/event-dispatcher v6+ 等均不兼容),不建议新项目使用。

为什么 composer require ratchet/ratchet 现在大概率报错

Ratchet 最后一个稳定版是 v0.4.4(2025 年发布),依赖已过时的 react/react v0.4–v0.7、guzzlehttp/streams(已废弃)、cboden/ratchet 命名空间与新版 PSR-14/PSR-15 冲突。Composer 会因依赖冲突拒绝安装,典型错误包括:

  • Conclusion: don't install ratchet/ratchet v0.4.4
  • Root composer.json requires ratchet/ratchet ^0.4.4 -> satisfiable by ratchet/ratchet[v0.4.4] + but these conflict with your requirements
  • PHP 8.1+ 下 ext-libevent 扩展缺失导致 React\EventLoop\ExtEventLoop 类找不到

替代方案:用 textalk/websocketamphp/websocket-server 快速启动 WebSocket 服务

如果只是需要轻量、可运行的 WebSocket 服务(如实时日志推送、简单聊天原型),推荐以下两个现代、活跃维护的选项:

  • textalk/websocket:纯 PHP 实现,无扩展依赖,适合开发/测试环境。安装命令:composer require textalk/websocket。启动服务只需几行代码,监听 ws://localhost:8000,支持 onOpen/onMessage 回调。
  • amphp/websocket-server:基于 Amp 异步生态,性能更好,支持 TLS、多 worker、连接限流。安装:composer require amphp/websocket-server amphp/byte-stream。需 PH

    P 8.0+,启动时用 Amp\Socket\Server 绑定端口,WebSocket 协议由 Websocket\Server 自动处理。

两者都不需要 ext-eventext-libevent,避免了 Ratchet 的扩展*问题。

如果必须跑旧 Ratchet 代码(如遗留系统)

只能降级环境并锁定依赖:

  • PHP 版本限制在 7.4(最高兼容到 7.4.33
  • composer.json 中强制指定旧版 React:"react/react": "v0.7.3""evenement/evenement": "v2.0.0""guzzlehttp/streams": "3.7.0"
  • 禁用 Composer 依赖自动升级:"minimum-stability": "stable" + "prefer-stable": true,否则 composer update 会破坏兼容链
  • 启动脚本必须用 php -S 配合 React\Http\Server 中间件,不能直接执行 vendor/bin/ratchet(该命令早已失效)

真正麻烦的不是安装命令,而是 Ratchet 把协议解析、事件循环、HTTP 升级全耦合在一起——现在没人再这么写了。用 amphpswoole 搭建 WebSocket,逻辑更清晰,出问题也容易定位。


# php  # react  # js  # json  # composer  # 端口  # websocket  # stream  # swoole  # 为什么  # symfony  # 中间件  # 命名空间  # require  # 循环  # Event  # 事件  # 异步  # http  # 等均  # 不兼容  # 都不  # 找不到  # 只需  # 没人  # 写了  # 不应  # 报错  # 绑定 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251811 】 【 AI营销90571


相关推荐: python中快速进行多个字符替换的方法小结  长沙做网站要多少钱,长沙国安网络怎么样?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  javascript读取文本节点方法小结  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何在阿里云完成域名注册与建站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  nginx修改上传文件大小限制的方法  微信小程序 canvas开发实例及注意事项  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  BootStrap整体框架之基础布局组件  微信小程序 配置文件详细介绍  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  专业商城网站制作公司有哪些,pi商城官网是哪个?  canvas 画布在主流浏览器中的尺寸限制详细介绍  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  JS实现鼠标移上去显示图片或微信二维码  javascript中对象的定义、使用以及对象和原型链操作小结  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Laravel API资源类怎么用_Laravel API Resource数据转换  5种Android数据存储方式汇总  济南网站建设制作公司,室内设计网站一般都有哪些功能?  详解vue.js组件化开发实践  🚀拖拽式CMS建站能否实现高效与个性化并存?  Android Socket接口实现即时通讯实例代码  如何确保FTP站点访问权限与数据传输安全?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  高防服务器:AI智能防御DDoS攻击与数据安全保障  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  微信h5制作网站有哪些,免费微信H5页面制作工具?  手机网站制作与建设方案,手机网站如何建设?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  android nfc常用标签读取总结  如何用西部建站助手快速创建专业网站?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel如何优化应用性能?(缓存和优化命令)  昵图网官方站入口 昵图网素材图库官网入口  网站制作大概要多少钱一个,做一个平台网站大概多少钱?