AVATAR

Life is live.

316 说说 72 文章 35 相册 4994留言

王较瘦的个人主页 运行 6451 天

老王正在 休息

运动
今日行走 0 步

当地时间GMT+8 00:00:00

2026 3 23周一

漂亮😻完美收官!!!

之前的状态虽改用redis存储,用php做的伪SSE输出,即每个请求只发一次数据就结束,靠浏览器自动重试,然后打开控制台会发现每5秒一个请求😨😨😨

作为强迫症的我怎能接受,无奈做长链接在 PHP 环境下会占用大量的 PHP-FPM 进程(一个用户占一个进程直到网页关闭),最终还是部署了node项目配合redis来作为状态的后端以解决长链接的问题实现无损实时更新。

那为什么一个不起眼的小小小功能也能让我耗费大把时间研究node.js呢,问过度娘两者的区别:

Node.js
Node.js 采用的是非阻塞异步 IO。这意味着:一个 Node.js 进程可以同时挂载几千个 SSE 长连接,而不需要为每个连接创建一个新进程。它不会阻塞主页或其他请求。
PHP-FPM
PHP-FPM 是典型的多进程模型。这意味着:一个连接占一个子进程。如果你设置 20 个进程,有 20 个用户同时打开你的长链接 /status 且不释放,第 21 个用户连主页都打不开(因为没进程用了)。

来自快捷指令0多云