avatar

mdo

Hello

  • 首页
  • 知识库
  • 归档
  • 标签
  • 关于
主页
mdo

为 RPC 端口和 Websocket 端口配置独立的 Worker 进程

在标准的 Swoole 中,子服务器端口(listen 产生的 Swoole\Server\Port)只能单独设置网络协议参数,无法直接通过 set(['worker_num' => X]) 来独立设置 Worker 进程数量。也就是说,默认情况下它们必然会共享主服务器的 Worker 进程。 为了

2026-06-29 技术

think-swoole 框架底层的一个“隐藏陷阱”

在 think-swoole 的底层实现中,当你调用 $websocket->to('room')->push($data) 时,由于 push 方法需要向特定的 FD 直接发送原始数据,框架为了保证主 Worker 进程不被网络 I/O 阻塞,在底层确实会自动把发送任务投递给 Task 进程去异步

2026-06-27 技术

think-swoole 自带的 Room

改用 think-swoole 自带的 Room(房间) 机制是解决线上高频广播丢包、阻塞的最正确姿势。 因为 Room 的底层完全基于 Swoole Table(内存共享表) 实现。当你要全员广播时,它不需要走传统的 Task进程,也不需要通过复杂的管道(Pipe)跨进程通信,更不需要你在代码里写

2026-06-27 技术

Task 队列阻塞与丢弃

在本地测试没问题,但线上在高并发、高频发布消息时出现“丢包”或“收不到信息”的现象,这在 think-swoole / Swoole 开发中非常典型。 虽然你配置了 task_worker_num = 8,但在高频广播消息的场景下,问题通常不是因为 Task 进程不够,而是由于 Swoole 的进程

2026-06-27 技术

think-swoole 全局广播

在 think-swoole 中,全局广播(向当前服务器上所有连接的客户端发送消息)通常有两种实现方式。 第一种是利用 think-swoole 内置的 Websocket 门面(Facade)或事件机制,适合单机部署;第二种是结合 Redis 发布/订阅(Pub/Sub),适合分布式/多机部署。

2026-06-26 技术

利用 Swoole 协程特性

默认配置 task_worker_num => 4 在面对批量推送消息时严重不足。当需要给成百上千个用户推送消息时,循环调用 Swoole 的 push 或投递大量小任务,会瞬间挤爆这 4 个进程,导致后续任务全部排队甚至超时。 请按照以下分级方案进行优化,方案一和方案二可以立即见效: 方案一:立即

2026-06-26 技术

Linux | Reqable · API抓包调试 + API测试一站式工具

Reqable是什么? Reqable = Fiddler + Charles + Postman 极简的设计、极高的性能、丰富的功能、桌面手机多端平台。 多协议流量分析 基于经典的MITM中间人代理方案捕获和分析您的应用流量,自适应HTTP/HTTPS/SOCKS4/SOCKS5等多种代理协议,并

2026-06-25 知识库

Session 文件冲突

即便你修正了拼写错误并加上了 session_start(),在 ThinkPHP 6 (TP6) 环境下,$sessionId 和 $sessionId2 依然是不一样的。 不仅如此,由于操作顺序和 TP6 的底层设计,这段代码在实际运行中还会带来非预期的并发副作用。 1. 为什么它们仍然不一样?

2026-06-25 技术

让 TP6 的 Session 组件重新接管控制权

我们需要让 TP6 的 Session 组件重新接管控制权,同时强行将其配置到 Redis 2号库,并在入口处拦截并纠正 APP 带来的 26 位 Token,最后同步写到 6号库。 请严格按照以下步骤进行调整,无需修改你现有的 session() 读写业务代码: 第一步:恢复 TP6 的 Sess

2026-06-24 技术

Redis 缓存余额 + 前端异步局部刷新 + 提供手动刷新按钮

在 ThinkPHP 6 (TP6) 框架下,针对这种对接多个第三方游戏导致页面加载慢的场景,我们可以使用 Swoole 并发请求(最推荐,大幅提升响应速度)或 Redis 缓存结合异步延迟更新 的方案来落地。 以下是具体的 TP6 实现代码和设计方案: 方案一:Swoole 多协程并发请求(针对必

2026-06-23 知识库
  • 1
  • 2
  • 3
  • 4
  • …
  • 11

最近更新

  • 完美地解决 TP3 老系统数据的平滑读取
  • thinkphp3 redis序列化和反序列化
  • Table 空间极易发生哈希冲突并溢出
  • 将监控程序直接跑在云端
  • AI 驱动型 Facebook 群组关键词监控 Chrome 浏览器插件

热门标签

API CodeGeex Gitkraken Management Manticore Premiere Sublime Swoole ThinkPHP ThinkPHP5

©2026 mdo. 保留部分权利。