欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Swoole到底是个什么东西?

程序员文章站 2022-06-17 18:47:38
...
一定要匿名!Swoole,据说是一个异步处理很牛逼的东西!但是他到底是什么?PHP扩展?为什么有人经常用他和node.js之类的做对比!
他和PHP是什么关系!请非常直白的说下!哦对了!爱php~

回复内容:

这个要回答下,楼上在说PHP的swoole框架,被黑的有点惨。实际上swoole扩展和PHP的框架并没有关系。

一直以来在其他编程语言程序员心目中PHP就是个套HTML页面的。所谓PHP程序员就是搞WordPress、discuz二次开发,一个月拿三五千的loser,和我大Java工程师相比简直low爆了。

但大家黑了PHP半天,才发现PHP最近这几年反而越来越流行了,PHPer们的工资可一点都不低。就拿我司来说吧,之前面过一个PHP程序员工作三年多,水平一般吧,后来公司开价2万/m收了。水平好一点的平均都在3-4万/m。

实际上作为一名PHP程序员,我很清楚PHP的确有很多局限性,比如Unix系统编程、网络通信编程、异步io,大部分PHPer不懂。PHP界也确实没有这样的东西。Swoole开源项目就是为了弥补PHP在这些方面的缺陷诞生的。与WordPress这些产品不同,swoole实际上是一个网络通信和异步io的引擎,一个基础库。PHPer可以基于swoole去实现过去PHP无法实现的功能。swoole为PHPer打开了通往另一个世界的大门。 php现有的应用方式都是基于http的,对于需要快速实时响应的情况比较乏力,比如网络游戏或者推送服务一般都需要与用户长期保持一个tcp连接以便实时响应和推送信息。
swoole就是解决这样应用场景的。
这个是让php自身建立一个服务,不需要nginx之类的代理,直接监听端口实现通信。
一种应用方式也可以代替掉nginx做http服务,但一般不会这么用。 php与外部通信需要借助系统的socket。

通常使用的Apache nginx就是封装了的socket,可以实现并发处理。客户端发送请求到nginx/apache,再转发到fastcgi端口交给php处理

swoole把系统的socket集成到php底层,php可以直接通过swoole与客户端交互。

也就是说swoole是个封装了底层socket的网络库。 Swoole之于PHP正如Node.js之于JavaScript. 就是一个底层通信框架,基于socket通信的,其实PHP 也能做多进程编程(扩展支持,workerman是这方面NO.1),swoole使用C 实现的一套PHP扩展,基于它也是做这方面的功能,因为这两个底层框架的存在,大大扩展了PHP的应用范围,和不错的未来期望 @韩天峰