编写 PHP 非阻塞应用程序

2022-08-30 15:41:16

我想编写非阻塞应用程序。我使用apache2,但我正在阅读nginx及其相对于apache进程的优势。我正在考虑将apache换成nginx。我的问题是,是否可以用php和nginx编写非阻塞Web应用程序?

或者是一个更好的主意,尝试用python来做到这一点,使用一些反向代理,如uwsgi或gunicorn与nginx?还是学习nodejs的解决方案?


答案 1

在php中编写非阻塞应用程序是可能的,但它可能不是这样做的最佳环境,因为它不是在创建时牢记这一点的!使用过程控制库PCNTL,您可以很好地控制子进程,但它显然不会为您提供其他环境可以为您提供的相同易用性!

我不太了解python,但就我个人而言,我建议你使用nodejs!这是一项相当新的技术,这是真的,但一切都是非阻塞的,它注定是那样的!基本上,你拥有的是一个线程(在这个新闻版本中你可以随心所欲地扩展它),从字面上看,所有的东西(除了你告诉它以不同的方式做)都将是事件驱动的,留下空间来按预期在进程队列上继续!

Nodejs真的很容易学习,如果你偶然发现Web应用程序,你无论如何都知道javascript!它仍然没有大量文档,但是有许多现成的模块可以立即下载和使用!


答案 2

据我所知,有几个库可用于构建非阻塞应用程序。

  1. Skyray,一个用C http://github.com/bixuehujin/skyray 编写的PHP网络库
  2. reactphp,如上所述,用纯 PHP 编写
  3. https://github.com/swoole/swoole-src
  4. phpdaemon, https://github.com/kakserpom/phpdaemon

顺便说一句:我是Skyray的作者,也是swoole的开发者之一。


推荐