Swoole

Github项目地址:https://github.com/swoole/swoole-src/ (支持请点Star)
开源中国2018最受欢迎开源软件评选,请为Swoole项目投票

PHP的协程高性能网络通信引擎,使用C/C++语言编写,提供了PHP语言的异步多线程服务器异步TCP/UDP网络客户端异步MySQL异步Redis数据库连接池AsyncTask消息队列毫秒定时器异步文件读写异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端Http2.0服务器端/客户端

Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需关心底层。与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。

除了异步IO的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器并发HashTableChannelLock进程间通信IPC等丰富的功能特性。

Swoole从2.0版本开始支持了内置协程,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步。

Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

Swoole是开源免费的自由软件,授权协议是Apache2.0。企业和个人开发者均可免费使用Swoole的代码,并且在Swoole之上所作的修改可用于商业产品,无需开源(注:必须保留原作者的版权声明)。

1.8.7或更高版本已完全兼容PHP7
2.0.12版本开始不再支持PHP5

开发工具

交流讨论

社区资源

微信公众号

Swoole开源项目微信公众号

捐赠Swoole开源项目

您的捐赠是对Swoole项目开发组最大的鼓励和支持。我们会坚持开发维护下去。 您的捐赠将被用于:

  • 持续和深入的开发
  • 文档和社区的建设和维护

点击捐赠 Swoole 开源项目

感谢 51talk 捐赠 10000元 RMB

感谢 codecasts.com 捐赠 8000元 RMB

感谢 易软天创 捐赠 3000元 RMB


  • 放羊~

    作者精神挺好很伟大! 捐款是好习惯

  • 徐明松

    顶一下,要好好学习了

  • jack

    swoole可以替代Php-fpm吗?

  • MOMO记事本

    支持一下哈

  • 'l'eo

    在听你的演讲

  • dym

    很强大,作者精神值得大力支持

  • 管思旭同学

    看了作者的演讲过来的,可是我的修行还不够,还不知道该怎么使用

  • 瑞

    很牛的样子,支持。

  • 我叫贱人三

    php 版的nodejs?

  • 冯煜博

    可以,只要你想 swoole 甚至可以代替 nginx。

  • 肖滔

    牛叉,已支持

  • 炽Yellow

    正在学习

  • Hoheart

    首先统一一下swoole怎么发音吧?我觉得swu:l比较好听。

  • 崔凯

    正在研究,已完成websocket聊天室,棒棒哒

  • Nina

    支持,正要下下来试试。

  • e-ink kindle

    文档的电子书能支持下amazon kindle的mobi格式木? pdf的也行

  • 奇虎分享网

    过来看看你的博客,希望每天都更新一些文章。

  • fd 不能限制为整型,多台服务器使用同一个redis集群时,因为 fd 的限制,造成系统逻辑频空增加不少复杂度。建议系统内置的主键和外部项目使用的主键分开,系统自动做一下映射,这样会减少集群部署时的不少麻烦。

  • 雪夜裸奔

    购买swoole.com上面链接的付费视频,算是支持吗

  • 初学者想学一下swoole,希望有人给予解答: 是不是一个类似网络棋牌游戏大厅这种网页游戏,服务端就可以用swoole_websocket_server? 客户端是用http_client还是直接js的websocket? 有没有大神给解释下swoole各服务器和客户端到底怎么用?以游戏大厅为例说一下整体系统架构。

  • 星空下的草地

    好东西,值得拥有!学习程序最快的方式,php+swoole

  • 讲真,站在php角度来讲,这个框架很优秀,也很新颖,因为绝大多数的php开发者都已经习惯了同步编程,突然遇上异步的确实很新的感觉。但是站在其他语言来说。这个框架其实并不怎么好。其他大部分语言已经原生支持异步的了。

  • 匆匆

    很强大,值得学习。

  • 冰是睡着得水

    怎么获取IP地址

  • homercharles

    支持韩老板,韩老板威武!~

  • black

    新手入门教程pdf里,很多章节都缺失了,能补一下不

  • 残缺的迂回∮

    phper赶紧上车了 再不上车就晚了

  • D
    D

    图书馆已安装:

    /root/swoole-1.9.6 /模块

    如果您碰巧想要链接到已安装的库。

    在给定的目录下,LIBDIR必须使用libtool,并且。

    指定库的完整路径名,或使用' -LLIBDIR'

    在连接过程中标记,并至少执行下列操作之一:

    -将LIBDIR添加到“LD_LIBRARY_PATH”环境变量。

    在执行期间

    -将LIBDIR添加到“LD_RUN_PATH”环境变量。

    在连接

    -使用' - wl,- rpath - wl,LIBDIR' linker标志。

    -让系统管理员将LIBDIR添加到' /etc/ lsd .conf'

    有关共享库的任何操作系统文档。

    更多信息,如ld(1)和ld.so(8)手册页。

  • D
    D

    哪位大神指点一下,这是什么原因啦

  • 从小就很酷

    支持韩老板

  • 昃昃

    支持韩老板

  • 国1家1宁

    力挺

  • 木偶

    不错,助力 php 高歌向前

  • zzhpeng

    加油,你是最棒的!让php能做更多事情!

  • shengsheng

    加油!!!

  • 云剑仙Cloud

    加油

  • henry

    想入手,但就对一些内存不能自动释放比较谨慎,像类静态变量,如果引用的别人的库,这个库的类中使用了static变量,总不能自己去给它释放吧?

  • 中国推广网

  • 室外桃源

    不错我继续阅读文档

  • kimistar

    韩老大越来越厉害了。

  • javacao

    真是厉害啊,打开phper新世界的大门,丰富了php生态!

  • Melody

    这个文档真的是太秀了

  • Berzerk

  • 622

    .......厉害

  • 谢景行

    真是厉害啊,打开phper新世界的大门,丰富了php生态!

  • 逆流的鱼

    支持

  • 流年

    支持

  • boo1

    支持

  • 莫■D离

    支持

  • shamofengbao

    支持!!!

  • 青青子衿

    求加一下VIP群,已捐赠

  • 三儿天下第一

    PHP /web学习交流 群 六凄凄绫漆久凄凄绫 677079770从TP5/Laravel框架内核原理,到PHP性能优化,到swoole网络通信引擎,微服务架构,大型商业企业项目实战,从人工智能技术到高并发分布式架构,欢迎各位大佬萌新加入