swoole / Swoole Wiki
Programming Languages
Projects that are alternatives of or similar to Swoole Wiki
Swoole中文文档
全量MarkDown版本
简介
PHP的异步、并行、高性能网络通信引擎,使用纯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通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器,并发HashTable,Channel,Lock,进程间通信IPC等丰富的功能特性。
Swoole从2.0版本开始支持了内置协程,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步。
Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole
作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。
Swoole是开源免费的自由软件,授权协议是Apache2.0
。企业和个人开发者均可免费使用Swoole的代码,并且在Swoole之上所作的修改可用于商业产品,无需开源(注:必须保留原作者的版权声明)。
1.8.7
或更高版本已完全兼容PHP7
2.0.12
版本开始不再支持PHP5
快速索引
- 入门指引
- Server
- Coroutine
- Runtime
- Timer
- Memory
- Http\Server
- WebSocket\Server
- Redis\Server
- Process
- Process\Pool
- Client
- Event
- 高级
- 其他
全量目录
-
入门指引
1-
环境依赖
1.1 -
编译安装
1.2 -
快速起步
1.3-
1.3.1
创建TCP服务器 -
1.3.2
创建UDP服务器 -
1.3.3
创建Web服务器 -
1.3.4
创建WebSocket服务器 -
1.3.5
设置定时器 -
1.3.6
执行异步任务 -
1.3.7
创建同步TCP客户端 -
1.3.8
创建异步TCP客户端 -
1.3.9
网络通信协议设计 -
1.3.10
使用异步客户端 -
1.3.11
多进程共享数据 -
1.3.12
使用协程客户端 -
1.3.13
协程:并发 shell_exec -
1.3.14
协程:Go + Chan + Defer -
1.3.15
协程:实现 Go 语言风格的 defer -
1.3.16
协程:实现 sync.WaitGroup 功能
-
-
编程须知
1.4-
1.4.1
sleep/usleep的影响 -
1.4.2
exit/die函数的影响 -
1.4.3
while循环的影响 -
1.4.4
stat缓存清理 -
1.4.5
mt_rand随机数 -
1.4.6
进程隔离
-
-
版本更新记录
1.5 -
向下不兼容改动
1.6 -
新特性使用
1.7-
1.7.1
4.3.0 在 Process 中使用协程 -
1.7.2
4.3.0 延时事件机制改进 -
1.7.3
2.1.2 进程池模块的使用 -
1.7.4
1.9.24 调度支持 Stream 模式 -
1.7.5
1.9.24 异步客户端自动解析域名 -
1.7.6
1.9.17 支持异步安全重启特性 -
1.7.7
1.9.14 使用异步客户端超时机制 -
1.7.8
1.8.0 使用内置Http异步客户端 -
1.7.9
1.7.16 使用迭代器遍历Server所有连接 -
1.7.10
1.7.5 在Server中使用swoole_table -
1.7.11
1.7.5 swoole_client支持sendfile接口 -
1.7.12
1.7.4 SSL隧道加密TCP-Server -
1.7.13
1.7.4 task进程中使用毫秒定时器 -
1.7.14
1.7.3 固定包头+包体协议自动分包 -
1.7.15
1.7.3 onTask直接return取代finish函数 -
1.7.16
1.7.2 swoole_process多进程模块的使用 -
1.7.17
1.7.2 task进程使用消息队列
-
-
项目路线图
1.8 -
php.ini选项
1.9 -
内核参数调整
1.10 -
衍生开源项目
1.12 -
用户与案例
1.13-
1.13.1
物联网项目 -
1.13.2
网络游戏 -
1.13.3
腾讯(Tencent) -
1.13.4
百度(Baidu.com) -
1.13.5
阅文集团 -
1.13.6
BiliBili(哔哩哔哩) -
1.13.7
车轮互联(chelun.com) -
1.13.8
(捞月狗) 游戏社区
-
-
提交错误报告
1.14 -
常见问题
1.15-
1.15.1
升级swoole版本的常见问题 -
1.15.2
生成可分发的二进制swoole版本 -
1.15.3
在phpinfo中有在php -m中没有 -
1.15.4
Connection refused是怎么回事 -
1.15.5
Resource temporarily unavailable [11] -
1.15.6
Cannot assign requested address [99] -
1.15.7
swoole与node.js相比有哪些优势 -
1.15.8
swoole与golang相比有哪些优势 -
1.15.9
pcre.h: No such file or directory -
1.15.10
undefined symbol: __sync_bool_compare_and_swap_4 -
1.15.11
学习Swoole需要掌握哪些基础知识 -
1.15.12
同步阻塞与异步非阻塞适用场景 -
1.15.13
PHP7环境下出现zend_mm_heap corrupted -
1.15.14
Swoole 项目起源和名字由来 -
1.15.15
'__builtin_saddl_overflow' was not declared in this scope
-
-
-
Server
2-
函数列表
2.1-
2.1.1
Server::__construct -
2.1.2
Server->set -
2.1.3
Server->on -
2.1.4
Server->addListener -
2.1.5
Server->addProcess -
2.1.6
Server->listen -
2.1.7
Server->start -
2.1.8
Server->reload -
2.1.9
Server->stop -
2.1.10
Server->shutdown -
2.1.11
Server->tick -
2.1.12
Server->after -
2.1.13
Server->defer -
2.1.14
Server->clearTimer -
2.1.15
Server->close -
2.1.16
Server->send -
2.1.17
Server->sendfile -
2.1.18
Server->sendto -
2.1.19
Server->sendwait -
2.1.20
Server->sendMessage -
2.1.21
Server->exist -
2.1.22
Server->pause -
2.1.23
Server->resume -
2.1.24
Server->getClientInfo -
2.1.25
Server->getClientList -
2.1.26
Server->bind -
2.1.27
Server->stats -
2.1.28
Server->task -
2.1.29
Server->taskwait -
2.1.30
Server->taskWaitMulti -
2.1.31
Server->taskCo -
2.1.32
Server->finish -
2.1.33
Server->heartbeat -
2.1.34
Server->getLastError -
2.1.35
Server->getSocket -
2.1.36
Server->protect -
2.1.37
Server->confirm
-
-
属性列表
2.2-
2.2.1
Server::$setting -
2.2.2
Server::$master_pid -
2.2.3
Server::$manager_pid -
2.2.4
Server::$worker_id -
2.2.5
Server::$worker_pid -
2.2.6
Server::$taskworker -
2.2.7
Server::$connections -
2.2.8
Server::$ports
-
-
配置选项
2.3-
2.3.1
reactor_num -
2.3.2
worker_num -
2.3.3
max_request -
2.3.4
max_conn (max_connection) -
2.3.5
task_worker_num -
2.3.6
task_ipc_mode -
2.3.7
task_max_request -
2.3.8
task_tmpdir -
2.3.9
dispatch_mode -
2.3.10
dispatch_func -
2.3.11
message_queue_key -
2.3.12
daemonize -
2.3.13
backlog -
2.3.14
log_file -
2.3.15
log_level -
2.3.16
heartbeat_check_interval -
2.3.17
heartbeat_idle_time -
2.3.18
open_eof_check -
2.3.19
open_eof_split -
2.3.20
package_eof -
2.3.21
open_length_check -
2.3.22
package_length_type -
2.3.23
package_length_func -
2.3.24
package_max_length -
2.3.25
open_cpu_affinity -
2.3.26
cpu_affinity_ignore -
2.3.27
open_tcp_nodelay -
2.3.28
tcp_defer_accept -
2.3.29
ssl_cert_file -
2.3.30
ssl_method -
2.3.31
ssl_ciphers -
2.3.32
user -
2.3.33
group -
2.3.34
chroot -
2.3.35
pid_file -
2.3.36
pipe_buffer_size -
2.3.37
buffer_output_size -
2.3.38
socket_buffer_size -
2.3.39
enable_unsafe_event -
2.3.40
discard_timeout_request -
2.3.41
enable_reuse_port -
2.3.42
enable_delay_receive -
2.3.43
open_http_protocol -
2.3.44
open_http2_protocol -
2.3.45
open_websocket_protocol -
2.3.46
open_mqtt_protocol -
2.3.47
open_websocket_close_frame -
2.3.48
reload_async -
2.3.49
tcp_fastopen -
2.3.50
request_slowlog_file -
2.3.51
enable_coroutine -
2.3.52
max_coroutine -
2.3.53
task_enable_coroutine
-
-
监听端口
2.4 -
预定义常量
2.5 -
事件回调函数
2.6-
2.6.1
onStart -
2.6.2
onShutdown -
2.6.3
onWorkerStart -
2.6.4
onWorkerStop -
2.6.5
onWorkerExit -
2.6.6
onConnect -
2.6.7
onReceive -
2.6.8
onPacket -
2.6.9
onClose -
2.6.10
onBufferFull -
2.6.11
onBufferEmpty -
2.6.12
onTask -
2.6.13
onFinish -
2.6.14
onPipeMessage -
2.6.15
onWorkerError -
2.6.16
onManagerStart -
2.6.17
onManagerStop
-
-
高级特性
2.7-
2.7.1
改变Worker进程的用户/组 -
2.7.2
回调函数中的 reactor_id 和 fd -
2.7.3
Length_Check 和 EOF_Check 的使用 -
2.7.4
Worker与Reactor通信模式 -
2.7.5
TCP-Keepalive死连接检测 -
2.7.6
TCP服务器心跳维持方案 -
2.7.7
多端口监听的使用 -
2.7.8
捕获Server运行期致命错误 -
2.7.9
Server内存管理机制 -
2.7.10
Server的两种运行模式介绍 -
2.7.11
Server中对象的4层生命周期 -
2.7.12
在worker进程内监听一个Server端口 -
2.7.13
在php-fpm/apache中使用task功能
-
-
常见问题
2.8-
2.8.1
为什么不要send完后立即close -
2.8.2
如何在回调函数中访问外部的变量 -
2.8.3
是否可以共用1个redis或mysql连接 -
2.8.4
关于onConnect/onReceive/onClose顺序 -
2.8.5
4种PHP回调函数风格 -
2.8.6
不同的Server程序实例间如何通信 -
2.8.7
错误信息:ERROR (9006) -
2.8.8
eventLoop has already been created. unable to create swoole_server
-
-
压力测试
2.9
-
-
Coroutine
3-
Coroutine
3.1-
3.1.1
Coroutine::getCid -
3.1.2
Coroutine::create -
3.1.3
Coroutine::yield -
3.1.4
Coroutine::resume -
3.1.5
Coroutine::defer -
3.1.6
Coroutine::fread -
3.1.7
Coroutine::fgets -
3.1.8
Coroutine::fwrite -
3.1.9
Coroutine::sleep -
3.1.10
Coroutine::gethostbyname -
3.1.11
Coroutine::getaddrinfo -
3.1.12
Coroutine::exec -
3.1.13
Coroutine::readFile -
3.1.14
Coroutine::writeFile -
3.1.15
Coroutine::stats -
3.1.16
Coroutine::statvfs -
3.1.17
Coroutine::getBackTrace -
3.1.18
Coroutine::listCoroutines -
3.1.19
Coroutine::set
-
-
Coroutine\Channel
3.2-
3.2.1
Coroutine\Channel->__construct -
3.2.2
Coroutine\Channel->push -
3.2.3
Coroutine\Channel->pop -
3.2.4
Coroutine\Channel->stats -
3.2.5
Coroutine\Channel->close -
3.2.6
Coroutine\Channel->length -
3.2.7
Coroutine\Channel->isEmpty -
3.2.8
Coroutine\Channel->isFull -
3.2.9
Coroutine\Channel->$capacity -
3.2.10
Coroutine\Channel->$errCode
-
-
Coroutine\Client
3.3-
3.3.1
Coroutine\Client->connect -
3.3.2
Coroutine\Client->send -
3.3.3
Coroutine\Client->recv -
3.3.4
Coroutine\Client->close -
3.3.5
Coroutine\Client->peek
-
-
Coroutine\Http\Client
3.4-
3.4.1
属性列表 -
3.4.2
Coroutine\Http\Client->get -
3.4.3
Coroutine\Http\Client->post -
3.4.4
Coroutine\Http\Client->upgrade -
3.4.5
Coroutine\Http\Client->push -
3.4.6
Coroutine\Http\Client->recv -
3.4.7
Coroutine\Http\Client->addFile -
3.4.8
Coroutine\Http\Client->addData -
3.4.9
Coroutine\Http\Client->download
-
-
Coroutine\Http2\Client
3.5 -
Coroutine\Redis
3.6-
3.6.1
Coroutine\Redis::__construct -
3.6.2
Coroutine\Redis::setOptions -
3.6.3
属性列表 -
3.6.4
事务模式 -
3.6.5
订阅模式
-
-
Coroutine\Socket
3.7-
3.7.1
Coroutine\Socket::__construct -
3.7.2
Coroutine\Socket->bind -
3.7.3
Coroutine\Socket->listen -
3.7.4
Coroutine\Socket->accept -
3.7.5
Coroutine\Socket->connect -
3.7.6
Coroutine\Socket->send -
3.7.7
Coroutine\Socket->recv -
3.7.8
Coroutine\Socket->sendto -
3.7.9
Coroutine\Socket->recvfrom -
3.7.10
Coroutine\Socket->getsockname -
3.7.11
Coroutine\Socket->getpeername -
3.7.12
Coroutine\Socket->close
-
-
Coroutine\MySQL
3.8-
3.8.1
属性列表 -
3.8.2
Coroutine\MySQL->connect -
3.8.3
Coroutine\MySQL->query -
3.8.4
Coroutine\MySQL->prepare -
3.8.5
Coroutine\MySQL->escape -
3.8.6
Coroutine\MySQL\Statement->execute -
3.8.7
Coroutine\MySQL\Statement->fetch -
3.8.8
Coroutine\MySQL\Statement->fetchAll -
3.8.9
Coroutine\MySQL\Statement->nextResult
-
-
Coroutine\PostgreSQL
3.9-
3.9.1
Coroutine\PostgreSQL->connect -
3.9.2
Coroutine\PostgreSQL->query -
3.9.3
Coroutine\PostgreSQL->fetchAll -
3.9.4
Coroutine\PostgreSQL->affectedRows -
3.9.5
Coroutine\PostgreSQL->numRows -
3.9.6
Coroutine\PostgreSQL->fetchObject -
3.9.7
Coroutine\PostgreSQL->fetchAssoc -
3.9.8
Coroutine\PostgreSQL->fetchArray -
3.9.9
Coroutine\PostgreSQL->fetchRow -
3.9.10
Coroutine\PostgreSQL->metaData
-
-
Server
3.10 -
并发调用
3.11-
3.11.1
setDefer 机制 -
3.11.2
子协程+通道
-
-
实现原理
3.12 -
常见问题
3.13 -
编程须知
3.14-
3.14.1
在多个协程间共用同一个协程客户端 -
3.14.2
禁止使用协程 API 的场景(2.x 版本) -
3.14.3
使用类静态变量/全局变量保存上下文 -
3.14.4
退出协程 -
3.14.5
异常处理
-
-
扩展组件
3.15-
3.15.1
MongoDB
-
-
编程调试
3.16
-
-
Runtime
4 -
Timer
5-
swoole_timer_tick
5.1 -
swoole_timer_after
5.2 -
swoole_timer_clear
5.3
-
-
Memory
6-
Lock
6.1-
6.1.1
swoole_lock->__construct -
6.1.2
swoole_lock->lock -
6.1.3
swoole_lock->trylock -
6.1.4
swoole_lock->unlock -
6.1.5
swoole_lock->lock_read -
6.1.6
swoole_lock->trylock_read -
6.1.7
swoole_lock->lockwait
-
-
Buffer
6.2-
6.2.1
swoole_buffer->__construct -
6.2.2
swoole_buffer->append -
6.2.3
swoole_buffer->substr -
6.2.4
swoole_buffer->clear -
6.2.5
swoole_buffer->expand -
6.2.6
swoole_buffer->write -
6.2.7
swoole_buffer->read -
6.2.8
swoole_buffer->recycle
-
-
Table
6.3-
6.3.1
Table->__construct -
6.3.2
Table->column -
6.3.3
Table->create -
6.3.4
Table->set -
6.3.5
Table->incr -
6.3.6
Table->decr -
6.3.7
Table->get -
6.3.8
Table->exist -
6.3.9
Table->count -
6.3.10
Table->del
-
-
Atomic
6.4-
6.4.1
swoole_atomic->__construct -
6.4.2
swoole_atomic->add -
6.4.3
swoole_atomic->sub -
6.4.4
swoole_atomic->get -
6.4.5
swoole_atomic->set -
6.4.6
swoole_atomic->cmpset -
6.4.7
swoole_atomic->wait -
6.4.8
swoole_atomic->wakeup
-
-
mmap
6.5-
6.5.1
swoole_mmap::open
-
-
Channel
6.6-
6.6.1
Channel->__construct -
6.6.2
Channel->push -
6.6.3
Channel->pop -
6.6.4
Channel->stats
-
-
Serialize
6.7-
6.7.1
swoole_serialize::pack -
6.7.2
swoole_serialize::unpack
-
-
-
Http\Server
7-
Http\Server
7.1-
7.1.1
Http\Server->on -
7.1.2
Http\Server->start
-
-
Http\Request
7.2-
7.2.1
Http\Request->$header -
7.2.2
Http\Request->$server -
7.2.3
Http\Request->$get -
7.2.4
Http\Request->$post -
7.2.5
Http\Request->$cookie -
7.2.6
Http\Request->$files -
7.2.7
Http\Request->rawContent -
7.2.8
Http\Request->getData
-
-
Http\Response
7.3-
7.3.1
Http\Response->header -
7.3.2
Http\Response->cookie -
7.3.3
Http\Response->status -
7.3.4
Http\Response->gzip -
7.3.5
Http\Response->redirect -
7.3.6
Http\Response->write -
7.3.7
Http\Response->sendfile -
7.3.8
Http\Response->end -
7.3.9
Http\Response->detach -
7.3.10
Http\Response::create
-
-
配置选项
7.4-
7.4.1
upload_tmp_dir -
7.4.2
http_parse_post -
7.4.3
document_root -
7.4.4
http_compression
-
-
常见问题
7.5-
7.5.1
CURL发送POST请求服务器端超时 -
7.5.2
使用Chrome访问服务器会产生2次请求 -
7.5.3
GET/POST请求的最大尺寸
-
-
-
WebSocket\Server
8-
回调函数
8.1-
8.1.1
onHandShake -
8.1.2
onOpen -
8.1.3
onMessage
-
-
函数列表
8.2-
8.2.1
WebSocket\Server->push -
8.2.2
WebSocket\Server->exist -
8.2.3
WebSocket\Server::pack -
8.2.4
WebSocket\Server::unpack -
8.2.5
WebSocket\Server->disconnect -
8.2.6
WebSocket\Server->isEstablished
-
-
预定义常量
8.3 -
常见问题
8.4 -
配置选项
8.5 -
WebSocket\Frame
8.6
-
-
Redis\Server
9-
方法
9.1-
9.1.1
Redis\Server->setHandler -
9.1.2
Redis\Server::format
-
-
常量
9.2
-
-
Process
10-
Process::__construct
10.1 -
Process->start
10.2 -
Process->name
10.3 -
Process->exec
10.4 -
Process->write
10.5 -
Process->read
10.6 -
Process->setTimeout
10.7 -
Process->setBlocking
10.8 -
Process->useQueue
10.9 -
Process->statQueue
10.10 -
Process->freeQueue
10.11 -
Process->push
10.12 -
Process->pop
10.13 -
Process->close
10.14 -
Process->exit
10.15 -
Process::kill
10.16 -
Process::wait
10.17 -
Process::daemon
10.18 -
Process::signal
10.19 -
Process::alarm
10.20 -
Process::setAffinity
10.21 -
Process::exportSocket
10.22
-
-
Process\Pool
11-
Process\Pool::__construct
11.1 -
Process\Pool->on
11.2 -
Process\Pool->listen
11.3 -
Process\Pool->write
11.4 -
Process\Pool->start
11.5 -
Process\Pool->getProcess
11.6
-
-
Client
12-
方法列表
12.1-
12.1.1
swoole_client::__construct -
12.1.2
swoole_client->set -
12.1.3
swoole_client->on -
12.1.4
swoole_client->connect -
12.1.5
swoole_client->isConnected -
12.1.6
swoole_client->getSocket -
12.1.7
swoole_client->getSockName -
12.1.8
swoole_client->getPeerName -
12.1.9
swoole_client->getPeerCert -
12.1.10
swoole_client->send -
12.1.11
swoole_client->sendto -
12.1.12
swoole_client->sendfile -
12.1.13
swoole_client->recv -
12.1.14
swoole_client->close -
12.1.15
swoole_client->sleep -
12.1.16
swoole_client->wakeup -
12.1.17
swoole_client->enableSSL
-
-
回调函数
12.2-
12.2.1
onConnect -
12.2.2
onError -
12.2.3
onReceive -
12.2.4
onClose -
12.2.5
onBufferFull -
12.2.6
onBufferEmpty
-
-
属性列表
12.3-
12.3.1
swoole_client->errCode -
12.3.2
swoole_client->sock -
12.3.3
swoole_client->reuse
-
-
并行
12.4-
12.4.1
swoole_client_select -
12.4.2
TCP客户端异步连接 -
12.4.3
SWOOLE_KEEP建立TCP长连接
-
-
常量
12.5 -
配置选项
12.6-
12.6.1
ssl_verify_peer -
12.6.2
ssl_host_name -
12.6.3
ssl_cafile -
12.6.4
ssl_capath -
12.6.5
package_length_func -
12.6.6
http_proxy_host
-
-
常见问题
12.7
-
-
Event
13-
swoole_event_add
13.1 -
swoole_event_set
13.2 -
swoole_event_isset
13.3 -
swoole_event_write
13.4 -
swoole_event_del
13.5 -
swoole_event_exit
13.6 -
swoole_event_defer
13.7 -
swoole_event_cycle
13.8 -
swoole_event_wait
13.9 -
swoole_event_dispatch
13.10 -
常见问题
13.11-
13.11.1
epoll_wait 偶尔会用很长时间
-
-
-
高级
15-
Swoole的实现
15.1 -
Reactor线程
15.2 -
Manager进程
15.3 -
Worker进程
15.4 -
Reactor、Worker、TaskWorker的关系
15.5 -
Task/Finish特性的用途
15.6 -
在php-fpm或apache中使用swoole
15.7 -
Swoole异步与同步的选择
15.8 -
TCP/UDP压测工具
15.9 -
swoole服务器如何做到无人值守100%可用
15.10 -
MySQL的连接池、异步、断线重连
15.11 -
PHP中哪些函数是同步阻塞的
15.12 -
守护进程程序常用数据结构
15.13-
15.13.1
队列(Queue) -
15.13.2
堆(Heap) -
15.13.3
定长数组(SplFixedArray)
-
-
使用jemalloc优化swoole内存分配性能
15.14 -
C开发者如何使用Swoole
15.15 -
C++开发者如何使用Swoole
15.16 -
使用systemd管理swoole服务
15.17 -
网卡中断设置
15.18 -
将Swoole静态编译内嵌到PHP
15.19 -
异步回调程序内存管理
15.20 -
日志等级控制
15.21 -
使用 asan 内存检测
15.22 -
Windows编译
15.23 -
Swoole协程之旅-前篇
15.24 -
Swoole协程之旅-中篇
15.25 -
Swoole协程之旅-后篇
15.26 -
协程CPU密集场景调度实现
15.27
-
-
其他
16-
函数列表
16.1-
16.1.1
swoole_set_process_name -
16.1.2
swoole_version -
16.1.3
swoole_strerror -
16.1.4
swoole_errno -
16.1.5
swoole_get_local_ip -
16.1.6
swoole_clear_dns_cache -
16.1.7
swoole_get_local_mac -
16.1.8
swoole_cpu_num -
16.1.9
swoole_last_error
-
-
Swoole技术会议
16.3 -
工作组(Working Groups)
16.4 -
参与开源项目指引
16.5 -
捐赠Swoole项目
16.6 -
加入Swoole开发组
16.7 -
非协程特性独立扩展 (swoole_async)
16.8 -
附录:Linux信号列表
16.9 -
附录:Linux错误码(errno)列表
16.10 -
附录:Swoole错误码列表
16.11 -
附录:TCP连接的状态
16.12 -
附录:tcpdump抓包工具的使用
16.13 -
附录:strace工具的使用
16.14 -
附录:gdb工具的使用
16.15 -
附录:lsof工具的使用
16.16 -
附录:perf工具的使用
16.17 -
附录:编译PHP扩展的相关工具
16.18 -
备用:已移除的历史特性
16.19-
16.19.1
swoole_server->handler -
16.19.2
task_worker_max -
16.19.3
swoole_server->addtimer -
16.19.4
swoole_server->deltimer -
16.19.5
onTimer -
16.19.6
swoole_timer_add -
16.19.7
swoole_timer_del -
16.19.8
swoole_get_mysqli_sock -
16.19.9
swoole_mysql_query -
16.19.10
onMasterConnect -
16.19.11
onMasterClose -
16.19.12
Nginx/Golang/Swoole/Node.js的性能对比 -
16.19.13
Coroutine::call_user_func -
16.19.14
Coroutine::call_user_func_array -
16.19.15
Coroutine\Channel::select -
16.19.16
task_async
-
-
历史:版本更新记录(1.x)
16.20-
16.20.1
1.10.3 -
16.20.2
1.10.2 -
16.20.3
1.10.1 -
16.20.4
1.10.0 -
16.20.5
1.9.23 -
16.20.6
1.9.22 -
16.20.7
1.9.19 -
16.20.8
1.9.18 -
16.20.9
1.9.17 -
16.20.10
1.9.16 -
16.20.11
1.9.15 -
16.20.12
1.9.14 -
16.20.13
1.9.12 -
16.20.14
1.9.11 -
16.20.15
1.9.9 -
16.20.16
1.9.7 -
16.20.17
1.9.6 -
16.20.18
1.9.5 -
16.20.19
1.9.4 -
16.20.20
1.9.3 -
16.20.21
1.9.2 -
16.20.22
1.9.1 -
16.20.23
1.9.0 -
16.20.24
1.8.13 -
16.20.25
1.8.12 -
16.20.26
1.8.11 -
16.20.27
1.8.10 -
16.20.28
1.8.9 -
16.20.29
1.8.8 -
16.20.30
1.8.7 -
16.20.31
1.8.6 -
16.20.32
1.8.5 -
16.20.33
1.8.4 -
16.20.34
1.8.3 -
16.20.35
1.8.2 -
16.20.36
1.8.1 -
16.20.37
1.8.0 -
16.20.38
1.7.22 -
16.20.39
1.7.21 -
16.20.40
1.7.20 -
16.20.41
1.7.19 -
16.20.42
1.7.18 -
16.20.43
1.7.17 -
16.20.44
1.7.16 -
16.20.45
1.7.15 -
16.20.46
1.7.14 -
16.20.47
1.7.13 -
16.20.48
1.7.12 -
16.20.49
1.7.11 -
16.20.50
1.7.10 -
16.20.51
1.7.9 -
16.20.52
1.7.8 -
16.20.53
1.7.7 -
16.20.54
1.7.6 -
16.20.55
1.7.5 -
16.20.56
v1.5 -
16.20.57
v1.6 -
16.20.58
v1.7
-
-
历史:版本更新记录(2.x)
16.21 -
历史:版本更新记录(4.x)
16.22
-