【发布时间】:2015-10-16 22:20:38
【问题描述】:
我喜欢编写一个在 Linux 后台运行的 PHP 脚本。
我想弄清楚在 PHP 守护程序(脚本)和浏览器客户端之间发送和接收元数据的解决方案是什么?
我以为我可以在守护程序本身中包含 http 请求处理,但守护程序脚本每秒可以接收 500-1000 个请求。所以守护进程本身的http请求不是一个好的解决方案。
Redis 或 ZeroMQ 是解决这个问题的方法吗?像这样的:
(browser clients) <-----> redis <-----> PHP Daemon Script
如果 PHP 守护进程向客户端发送消息,则浏览器应立即通过 ajax(长轮询)获取元数据。
【问题讨论】:
-
最好的解决方案是使用Mongrel2。它是一个使用 ZeroMQ 作为其传输层的 Web 服务器。 HTTP 或 WebSocket 协议的表示方式相同,它将消息传递到 ZMQ 端点 - 这是您的脚本开始的地方。您可以在一台机器上拥有一个守护程序,或者以循环方式处理请求的数百万个守护程序。或者您可以自己实现整个HTTP解析/使用websockets(您必须自己实现websocket解析+对浏览器的连接处理)。 Mongrel2 的性能优于任何可用的服务器。
标签: php redis message-queue zeromq