入门指引

Swoole虽然是标准的PHP扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。

Swoole要求使用者必须具备一定的Linux/Unix环境编程基础,《学习Swoole需要掌握哪些基础知识》 本文列出了基础知识清单。

swoole_server

强大的TCP/UDP Server框架,多线程,EventLoop,事件驱动,异步,Worker进程组,Task异步任务,毫秒定时器,SSL/TLS隧道加密。

  • swoole_http_serverswoole_server的子类,内置了Http的支持
  • swoole_websocket_serverswoole_http_server的子类,内置了WebSocket的支持
  • swoole_redis_serverswoole_server的子类,内置了Redis服务器端协议的支持

子类可以调用父类的所有方法和属性

swoole_client

TCP/UDP/UnixSocket客户端,支持IPv4/IPv6,支持SSL/TLS隧道加密,支持SSL双向证书,支持同步并发调用,支持异步事件驱动编程。

swoole_event

EventLoop API,让用户可以直接操作底层的事件循环,将socket,stream,管道等Linux文件加入到事件循环中。

eventloop接口仅可用于socket类型的文件描述符,不能用于磁盘文件读写

swoole_async

异步IO接口,提供了 异步文件系统IO,定时器,异步DNS查询,异步MySQL等API,异步Http客户端,异步Redis客户端。

  • swoole_timer 异步毫秒定时器,可以实现间隔时间或一次性的定时任务
  • swoole_async_read/swoole_async_write 文件系统操作的异步接口

swoole_process

进程管理模块,可以方便的创建子进程,进程间通信,进程管理。

swoole_buffer

强大的内存区管理工具,像C一样进行指针计算,又无需关心内存的申请和释放,而且不用担心内存越界,底层全部做好了。

swoole_table

基于共享内存和自旋锁实现的超高性能内存表。彻底解决线程,进程间数据共享,加锁同步等问题。

swoole_table的性能可以达到单线程每秒读写100W次


  • 原来微博的昵称真的可以好长好长

    牛逼,我想知道 有没有基于这些特性封装好的框架、工具集? 这个如果有的话,是可以直接拿来用,并极大提高工作效率、性能的。

  • 多多

    这种异步的,基于tcp的,更多的是实时应用,例如游戏服务器,用框架显得累赘

  • 原来微博的昵称真的可以好长好长

    好吧~~ 游戏服务器确实很适合用这个~ 特别是PHPer用。。 爽爆了~

  • 杰乐

    swoole是个好东西,可我太笨,还在努力!!

  • Hoheart

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

  • 游客1

    牛逼,希望php越来越好

  • 周果

    今天听说swoole,过来看看

  • 什么时候发布纯Windows版本?

  • 爱拼才会赢

    swoole 想想很激动

  • funny

    configure: WARNING: unrecognized options: --enable-async-mysql

  • dawn

    不太好理解啊

  • LaravelS (Laravel/Lumen+Swoole) 简单,非侵入式,开箱即用。

  • 归期何期?

    好了,游戏已经上线了。

  • " 航仔 .

    fedora 能不能弄一弄 他这也没有推荐

  • dd

    听说很厉害来研究研究