首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >编写PHP非阻塞应用程序

编写PHP非阻塞应用程序
EN

Stack Overflow用户
提问于 2013-05-01 13:29:22
回答 3查看 9.5K关注 0票数 28

我想写非阻塞的应用程序。我使用的是apache2,但我读到的是关于nginx及其在apache进程方面的优势。我正在考虑把apache换成nginx。我的问题是,有没有可能用php和nginx编写非阻塞的web应用程序?

或者更好的办法是尝试使用python,使用一些反向代理,比如uwsgi或者使用nginx的gunicorn?还是学习nodejs的解决方案?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-01 13:43:54

用php编写非阻塞应用程序是可能的,但这可能不是最好的环境,因为它在创建时并没有考虑到这一点!通过使用进程控制库PCNTL,您可以很好地控制子进程,但它显然不会像其他环境那样易于使用!

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

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

票数 19
EN

Stack Overflow用户

发布于 2015-10-28 18:50:37

对于编写非阻塞Swoole应用程序来说,php是一个很好的选择。

下面是一个示例:

代码语言:javascript
复制
$fp = stream_socket_client("tcp://127.0.0.1:80", $code, $msg, 3);
$http_request = "GET /index.html HTTP/1.1\r\n\r\n";
fwrite($fp, $http_request);
swoole_event_add($fp, function($fp){
    echo fread($fp, 8192);
    swoole_event_del($fp);
    fclose($fp);
});
swoole_timer_after(2000, function() {
    echo "2000ms timeout\n";
});
swoole_timer_tick(1000, function() {
    echo "1000ms interval\n";
});
票数 6
EN

Stack Overflow用户

发布于 2013-05-01 14:00:59

如果你想不费很多力气就拥有非阻塞的应用程序,你可以尝试使用pushpin。我在我的一个应用程序中使用了它,它工作得很好。您可以在author's blog post上找到更多信息。我在现有的项目上添加了这个,几乎没有改变现有的代码。

如果您想使用node,请确保这是适合该作业的工具。检查堆栈溢出问题,因为这个问题已经有答案了。问问你自己,你的应用程序想法是否适合节点功能。例如,尝试使用Why and When to use node js?How to decide when to use NodeJS?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16313224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档