首页
(current)
分类
标签
排行榜
搜索
注册
登录
小鹤
Swoole 文档帮助手册教程
Swoole 文档帮助手册教程
语言:中文 | 章节:730 | 阅读:49187 | 收藏:0 | 评论:0
Swoole 文档帮助手册教程
Swoole
阅读
收藏
打赏
分享
举报
目录
评论
Swoole中文文档
入门指引
环境依赖
内核参数调整
衍生开源项目
框架
工具
分布式
通信协议
用户与案例
物联网项目
网络游戏
腾讯(Tencent)
百度(Baidu.com)
阅文集团
BiliBili(哔哩哔哩)
车轮互联(chelun.com)
(捞月狗) 游戏社区
提交错误报告
常见问题
升级swoole版本的常见问题
undefined symbol: __sync_bool_compare_and_swap_4
学习Swoole需要掌握哪些基础知识
同步阻塞与异步非阻塞适用场景
PHP7环境下出现zend_mm_heap corrupted
Swoole 项目起源和名字由来
’__builtin_saddl_overflow’ was not declared in this scope
生成可分发的二进制swoole版本
在phpinfo中有在php -m中没有
Connection refused是怎么回事
Resource temporarily unavailable [11]
Cannot assign requested address [99]
swoole与node.js相比有哪些优势
swoole与golang相比有哪些优势
pcre.h: No such file or directory
编译安装
编译参数
常见错误
Cygwin
快速起步
创建TCP服务器
使用异步客户端
多进程共享数据
使用协程客户端
协程:并发 shell_exec
协程:Go + Chan + Defer
协程:实现 Go 语言风格的 defer
协程:实现 sync.WaitGroup 功能
创建UDP服务器
创建Web服务器
创建WebSocket服务器
设置定时器
执行异步任务
创建同步TCP客户端
创建异步TCP客户端
网络通信协议设计
编程须知
sleep/usleep的影响
exit/die函数的影响
while循环的影响
stat缓存清理
mt_rand随机数
进程隔离
版本更新记录
4.3.0 [大版本]
4.1.0
4.0.1
4.0.0
4.2.12
4.2.11
4.2.10
4.2.9
4.2.8
4.2.7
4.2.0
向下不兼容改动
新特性使用
4.3.0 在 Process 中使用协程
1.7.5 在Server中使用swoole_table
1.7.5 swoole_client支持sendfile接口
1.7.4 SSL隧道加密TCP-Server
1.7.4 task进程中使用毫秒定时器
1.7.3 固定包头+包体协议自动分包
1.7.3 onTask直接return取代finish函数
1.7.2 swoole_process多进程模块的使用
1.7.2 task进程使用消息队列
4.3.0 延时事件机制改进
2.1.2 进程池模块的使用
1.9.24 调度支持 Stream 模式
1.9.24 异步客户端自动解析域名
1.9.17 支持异步安全重启特性
1.9.14 使用异步客户端超时机制
1.8.0 使用内置Http异步客户端
1.7.16 使用迭代器遍历Server所有连接
项目路线图
php.ini选项
Process
Process::__construct
Process->statQueue
Process->freeQueue
Process->push
Process->pop
Process->close
Process->exit
Process::kill
Process::wait
Process::daemon
Process::signal
Process->start
Process::alarm
Process::setAffinity
Process::exportSocket
Process->name
Process->exec
Process->write
Process->read
Process->setTimeout
Process->setBlocking
Process->useQueue
Process\Pool
Process\Pool::__construct
Process\Pool->on
Process\Pool->listen
Process\Pool->write
Process\Pool->start
Process\Pool->getProcess
Client
方法列表
swoole_client::__construct
swoole_client->send
swoole_client->sendto
swoole_client->sendfile
swoole_client->recv
swoole_client->close
swoole_client->sleep
swoole_client->wakeup
swoole_client->enableSSL
swoole_client->set
swoole_client->on
swoole_client->connect
swoole_client->isConnected
swoole_client->getSocket
swoole_client->getSockName
swoole_client->getPeerName
swoole_client->getPeerCert
回调函数
onConnect
onError
onReceive
onClose
onBufferFull
onBufferEmpty
属性列表
swoole_client->errCode
swoole_client->sock
swoole_client->reuse
并行
swoole_client_select
TCP客户端异步连接
SWOOLE_KEEP建立TCP长连接
常量
配置选项
ssl_verify_peer
ssl_host_name
ssl_cafile
ssl_capath
package_length_func
http_proxy_host
常见问题
Event
swoole_event_add
swoole_event_dispatch
常见问题
epoll_wait 偶尔会用很长时间
swoole_event_set
swoole_event_isset
swoole_event_write
swoole_event_del
swoole_event_exit
swoole_event_defer
swoole_event_cycle
swoole_event_wait
高级
Swoole的实现
swoole服务器如何做到无人值守100%可用
MySQL的连接池、异步、断线重连
PHP中哪些函数是同步阻塞的
守护进程程序常用数据结构
队列(Queue)
堆(Heap)
定长数组(SplFixedArray)
使用jemalloc优化swoole内存分配性能
C开发者如何使用Swoole
C++开发者如何使用Swoole
使用systemd管理swoole服务
网卡中断设置
将Swoole静态编译内嵌到PHP
Reactor线程
异步回调程序内存管理
日志等级控制
使用 asan 内存检测
Windows编译
Swoole协程之旅-前篇
Swoole协程之旅-中篇
Swoole协程之旅-后篇
协程CPU密集场景调度实现
Manager进程
Worker进程
Reactor、Worker、TaskWorker的关系
Task/Finish特性的用途
在php-fpm或apache中使用swoole
Swoole异步与同步的选择
TCP/UDP压测工具
其他
函数列表
swoole_set_process_name
swoole_version
swoole_strerror
swoole_errno
swoole_get_local_ip
swoole_clear_dns_cache
swoole_get_local_mac
swoole_cpu_num
swoole_last_error
附录:Linux错误码(errno)列表
附录:Swoole错误码列表
附录:TCP连接的状态
附录:tcpdump抓包工具的使用
附录:strace工具的使用
附录:gdb工具的使用
附录:lsof工具的使用
附录:perf工具的使用
附录:编译PHP扩展的相关工具
备用:已移除的历史特性
swoole_server->handler
onMasterConnect
onMasterClose
Nginx/Golang/Swoole/Node.js的性能对比
Coroutine::call_user_func
Coroutine::call_user_func_array
Coroutine\Channel::select
task_async
task_worker_max
swoole_server->addtimer
swoole_server->deltimer
onTimer
swoole_timer_add
swoole_timer_del
swoole_get_mysqli_sock
swoole_mysql_query
历史:版本更新记录(1.x)
1.10.3
1.9.16
1.9.15
1.9.14
1.9.12
1.9.11
1.9.9
1.9.7
1.9.6
1.9.5
1.9.4
1.10.2
1.9.3
1.9.2
1.9.1
1.9.0
1.8.13
1.8.12
1.8.11
1.8.10
1.8.9
1.8.8
1.10.1
1.8.7
1.8.6
1.8.5
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.22
1.7.21
1.10.0
1.7.20
1.7.19
1.7.18
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.9.23
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
v1.5
v1.6
v1.7
1.9.22
1.9.19
1.9.18
1.9.17
历史:版本更新记录(2.x)
2.0.1-Alpha
2.1.2
2.2.0
3.0.0
2.0.5
2.0.9
1.9.21
2.0.10
2.0.11
2.0.12
2.0.13
2.1.1
历史:版本更新记录(4.x)
4.0.3
4.2.5
4.2.6
4.2.7
4.2.9
4.2.8
4.0.2
4.0.4
4.1.1
4.1.2
4.2.1
4.2.2
4.2.3
4.2.4
Swoole技术会议
工作组(Working Groups)
参与开源项目指引
捐赠Swoole项目
加入Swoole开发组
非协程特性独立扩展 (swoole_async)
附录:Linux信号列表
Server
函数列表
Server::__construct
Server->shutdown
Server->tick
Server->after
Server->defer
Server->clearTimer
Server->close
Server->send
Server->sendfile
Server->sendto
Server->sendwait
Server->set
Server->sendMessage
Server->exist
Server->pause
Server->resume
Server->getClientInfo
Server->getClientList
Server->bind
Server->stats
Server->task
Server->taskwait
Server->on
Server->taskWaitMulti
Server->taskCo
Server->finish
Server->heartbeat
Server->getLastError
Server->getSocket
Server->protect
Server->confirm
Server->addListener
Server->addProcess
Server->listen
Server->start
Server->reload
Server->stop
属性列表
Server::$setting
Server::$master_pid
Server::$manager_pid
Server::$worker_id
Server::$worker_pid
Server::$taskworker
Server::$connections
Server::$ports
配置选项
reactor_num
dispatch_func
message_queue_key
daemonize
backlog
log_file
log_level
heartbeat_check_interval
heartbeat_idle_time
open_eof_check
open_eof_split
worker_num
package_eof
open_length_check
package_length_type
package_length_func
package_max_length
open_cpu_affinity
cpu_affinity_ignore
open_tcp_nodelay
tcp_defer_accept
ssl_cert_file
max_request
ssl_method
ssl_ciphers
user
group
chroot
pid_file
pipe_buffer_size
buffer_output_size
socket_buffer_size
enable_unsafe_event
max_conn (max_connection)
discard_timeout_request
enable_reuse_port
enable_delay_receive
open_http_protocol
open_http2_protocol
open_websocket_protocol
open_mqtt_protocol
open_websocket_close_frame
reload_async
tcp_fastopen
task_worker_num
request_slowlog_file
enable_coroutine
max_coroutine
task_enable_coroutine
task_ipc_mode
task_max_request
task_tmpdir
dispatch_mode
监听端口
可选参数
可选回调
连接迭代器
预定义常量
事件回调函数
onStart
onBufferFull
onBufferEmpty
onTask
onFinish
onPipeMessage
onWorkerError
onManagerStart
onManagerStop
onShutdown
onWorkerStart
onWorkerStop
onWorkerExit
onConnect
onReceive
onPacket
onClose
高级特性
改变Worker进程的用户/组
Server的两种运行模式介绍
Server中对象的4层生命周期
在worker进程内监听一个Server端口
在php-fpm/apache中使用task功能
回调函数中的 reactor_id 和 fd
Length_Check 和 EOF_Check 的使用
Worker与Reactor通信模式
TCP-Keepalive死连接检测
TCP服务器心跳维持方案
多端口监听的使用
捕获Server运行期致命错误
Server内存管理机制
常见问题
为什么不要send完后立即close
如何在回调函数中访问外部的变量
是否可以共用1个redis或mysql连接
关于onConnect/onReceive/onClose顺序
4种PHP回调函数风格
不同的Server程序实例间如何通信
错误信息:ERROR (9006)
eventLoop has already been created. unable to create swoole_server
压力测试
并发10万TCP连接的测试
PHP7+Swoole/Nginx/Golang性能对比
全球Web框架权威性能测试 Techempower Web Framework Benchmarks
Coroutine
Coroutine
Coroutine::getCid
Coroutine::gethostbyname
Coroutine::getaddrinfo
Coroutine::exec
Coroutine::readFile
Coroutine::writeFile
Coroutine::stats
Coroutine::statvfs
Coroutine::getBackTrace
Coroutine::listCoroutines
Coroutine::set
Coroutine::create
Coroutine::yield
Coroutine::resume
Coroutine::defer
Coroutine::fread
Coroutine::fgets
Coroutine::fwrite
Coroutine::sleep
Server
并发调用
setDefer 机制
子协程+通道
实现原理
协程与线程
发送数据协程调度
协程内存开销
4.0 协程实现原理
协程客户端超时规则
协程执行流程
常见问题
运行中出现 Fatal error: Maximum function nesting level of ‘1000’ reached, aborting!
为什么只能在回调函数中使用协程客户端
支持协程的回调方法列表
错误信息: XXXX client has already been bound to another coroutine
Swoole4 协程与 PHP 的 Yield/Generator 协程有什么区别
Swoole4 协程与 Go 协程有哪些区别
编程须知
在多个协程间共用同一个协程客户端
禁止使用协程 API 的场景(2.x 版本)
使用类静态变量/全局变量保存上下文
退出协程
异常处理
扩展组件
MongoDB
编程调试
Coroutine\Channel
Coroutine\Channel->__construct
Coroutine\Channel->$errCode
Coroutine\Channel->push
Coroutine\Channel->pop
Coroutine\Channel->stats
Coroutine\Channel->close
Coroutine\Channel->length
Coroutine\Channel->isEmpty
Coroutine\Channel->isFull
Coroutine\Channel->$capacity
Coroutine\Client
Coroutine\Client->connect
Coroutine\Client->send
Coroutine\Client->recv
Coroutine\Client->close
Coroutine\Client->peek
Coroutine\Http\Client
属性列表
Coroutine\Http\Client->get
Coroutine\Http\Client->post
Coroutine\Http\Client->upgrade
Coroutine\Http\Client->push
Coroutine\Http\Client->recv
Coroutine\Http\Client->addFile
Coroutine\Http\Client->addData
Coroutine\Http\Client->download
Coroutine\Http2\Client
Coroutine\Http2\Client->__construct
Coroutine\Http2\Client->set
Coroutine\Http2\Client->connect
Coroutine\Http2\Client->send
Coroutine\Http2\Client->write
Coroutine\Http2\Client->recv
Coroutine\Http2\Client->close
Coroutine\Redis
Coroutine\Redis::__construct
Coroutine\Redis::setOptions
属性列表
事务模式
订阅模式
Coroutine\Socket
Coroutine\Socket::__construct
Coroutine\Socket->getsockname
Coroutine\Socket->getpeername
Coroutine\Socket->close
Coroutine\Socket->bind
Coroutine\Socket->listen
Coroutine\Socket->accept
Coroutine\Socket->connect
Coroutine\Socket->send
Coroutine\Socket->recv
Coroutine\Socket->sendto
Coroutine\Socket->recvfrom
Coroutine\MySQL
属性列表
Coroutine\MySQL->connect
Coroutine\MySQL->query
Coroutine\MySQL->prepare
Coroutine\MySQL->escape
Coroutine\MySQL\Statement->execute
Coroutine\MySQL\Statement->fetch
Coroutine\MySQL\Statement->fetchAll
Coroutine\MySQL\Statement->nextResult
Coroutine\PostgreSQL
Coroutine\PostgreSQL->connect
Coroutine\PostgreSQL->metaData
Coroutine\PostgreSQL->query
Coroutine\PostgreSQL->fetchAll
Coroutine\PostgreSQL->affectedRows
Coroutine\PostgreSQL->numRows
Coroutine\PostgreSQL->fetchObject
Coroutine\PostgreSQL->fetchAssoc
Coroutine\PostgreSQL->fetchArray
Coroutine\PostgreSQL->fetchRow
Runtime
文件操作
睡眠函数
开关选项
严格模式
Timer
swoole_timer_tick
swoole_timer_after
swoole_timer_clear
Memory
Lock
swoole_lock->__construct
swoole_lock->lock
swoole_lock->trylock
swoole_lock->unlock
swoole_lock->lock_read
swoole_lock->trylock_read
swoole_lock->lockwait
Buffer
swoole_buffer->__construct
swoole_buffer->append
swoole_buffer->substr
swoole_buffer->clear
swoole_buffer->expand
swoole_buffer->write
swoole_buffer->read
swoole_buffer->recycle
Table
Table->__construct
Table->del
Table->column
Table->create
Table->set
Table->incr
Table->decr
Table->get
Table->exist
Table->count
Atomic
swoole_atomic->__construct
swoole_atomic->add
swoole_atomic->sub
swoole_atomic->get
swoole_atomic->set
swoole_atomic->cmpset
swoole_atomic->wait
swoole_atomic->wakeup
mmap
swoole_mmap::open
Channel
Channel->__construct
Channel->push
Channel->pop
Channel->stats
Serialize
swoole_serialize::pack
swoole_serialize::unpack
Http\Server
Http\Server
Http\Server->on
Http\Server->start
Http\Request
Http\Request->$header
Http\Request->$server
Http\Request->$get
Http\Request->$post
Http\Request->$cookie
Http\Request->$files
Http\Request->rawContent
Http\Request->getData
Http\Response
Http\Response->header
Http\Response::create
Http\Response->cookie
Http\Response->status
Http\Response->gzip
Http\Response->redirect
Http\Response->write
Http\Response->sendfile
Http\Response->end
Http\Response->detach
配置选项
upload_tmp_dir
http_parse_post
document_root
http_compression
常见问题
CURL发送POST请求服务器端超时
使用Chrome访问服务器会产生2次请求
GET/POST请求的最大尺寸
WebSocket\Server
回调函数
onHandShake
onOpen
onMessage
函数列表
WebSocket\Server->push
WebSocket\Server->exist
WebSocket\Server::pack
WebSocket\Server::unpack
WebSocket\Server->disconnect
WebSocket\Server->isEstablished
预定义常量
常见问题
配置选项
WebSocket\Frame
Redis\Server
方法
Redis\Server->setHandler
Redis\Server::format
常量
善良比聪明更重要(评论内容审核后才会显示)
分享,让知识传承更久远
×
文档下载
×
请下载您需要的格式的文档,随时随地,享受汲取知识的乐趣!
PDF
文档
EPUB
文档
MOBI
文档