本书未发布

入门指引

为了更好的阅读体验,将文档从 Swoole 官方文档 搬运过来。内容比较多,我会慢慢搬运过来,也欢迎大家以提交改进的方式一起帮助我。

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

新手入门教程:https://github.com/LinkedDestiny/swoole-do... (已停更)
Swoole 简明指南:https://linkeddestiny.gitbooks.io/easy-swo...
Swoole要求使用者必须具备一定的 Linux/Unix 环境编程基础,《学习Swoole需要掌握哪些基础知识》 本文列出了基础知识清单。

Server

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

  • Http\Server是 Server 的子类,内置了 Http 的支持
  • WebSocket\Server是 Http\Server 的子类,内置了 WebSocket 的支持
  • Redis\Server是 Server 的子类,内置了 Redis 服务器端协议的支持

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

Client

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

Event

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

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

Async

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

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

异步回调API在4.4版本中已废弃

Coroutine

Swoole 在 2.0 开始内置协程 (Coroutine) 的能力,提供了具备协程能力 IO 接口(统一在命名空间Swoole\Coroutine*)。

协程可以理解为纯用户态的线程,其通过协作而不是抢占来进行切换。相对于进程或者线程,协程所有的操作都可以在用户态完成,创建和切换的消耗更低。Swoole 可以为每一个请求创建对应的协程,根据 IO的状态来合理的调度协程,这会带来了以下优势:

开发者可以无感知的用同步的代码编写方式达到异步 IO 的效果和性能,避免了传统异步回调所带来的离散的代码逻辑和陷入多层回调中导致代码无法维护。

Process

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

Buffer

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

Table

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

Table 的性能可以达到单线程每秒读写 200W

本文章首发在 LearnKu.com 网站上。
上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~