Server-Swoole-Swoole文档中心


本站和网页 https://wiki.swoole.com/wiki/page/p-server.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Server-Swoole-Swoole文档中心
Swoole
Swoole内核开发
PHP-X
搜索
搜索
入门指引
Server
方法
属性
选项
监听端口
常量
事件
高级特性
常见问题
压力测试
Coroutine
Runtime
Timer
Memory
Http\Server
WebSocket\Server
Redis\Server
Process
Process\Pool
Client
Event
Async
高级
其他
增加子页面
增加同级页面
编辑本页
更多...
Toggle Dropdown
历史修改记录
贡献者名单
警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档
Server
创建一个异步服务器程序,支持TCP、UDP、UnixSocket 3种协议,支持IPv4和IPv6,支持SSL/TLS单向双向证书的隧道加密。使用者无需关注底层实现细节,仅需要设置网络事件的回调函数即可。
请勿在使用Server创建之前调用其他异步IO的API,否则将会创建失败。可以在Server启动后onWorkerStart回调函数中使用。
Server只能用于php-cli环境,在其他环境下会抛出致命错误
构建Server对象
$serv = new Swoole\Server('0.0.0.0', 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);
设置运行时参数
$serv->set(array(
'worker_num' => 4,
'daemonize' => true,
'backlog' => 128,
));
注册事件回调函数
$serv->on('Connect', 'my_onConnect');
$serv->on('Receive', 'my_onReceive');
$serv->on('Close', 'my_onClose');
PHP中可以使用4种回调函数的风格
启动服务器
$serv->start();
属性列表
$serv->manager_pid; //管理进程的PID,通过向管理进程发送SIGUSR1信号可实现柔性重启
$serv->master_pid; //主进程的PID,通过向主进程发送SIGTERM信号可安全关闭服务器
$serv->connections; //当前服务器的客户端连接,可使用foreach遍历所有连接
运行流程图
进程/线程结构图
最新最早最热
120.48万次阅读 51条评论
桄欣
很多人求范例,在Github上下载源码里有个examples目录,里面有各种范例程序
2014-11-16
删除
FAITH
怎么集成到yii?我试了一次yiic命令行 来启动 swoole扩展,监听9501,但是netstat 找不到这个端口,这怎么解决?
2015-03-04
删除
蛙饭
swoole set里面设置进程守护 (daemonize为true) 后不执行io相关操作 .举例: 设置receive事件的时候 文件读写做log . 是不是因为php版本问题5.3.28 .补充(ps -ef | grep php 中是启动了的)
2015-05-05
删除
汪孝明
server与server之间如何通讯呢?我在task和worker进程里建立swoole_client连接服务器,进程就挂了
2015-07-30
删除
object8421
如果用swoole作为udp服务器,可以利用其多进程来处理高并发吗, 设置worker_num就够了吗?@Rango-韩天峰
2015-09-18
删除
支持 https 服务器吗?
2015-10-11
删除
balalala
我觉得swoole可以做数据层,业务层通过udp发包,swoole设置worker_num用抢占模式接包处理后,再回包给业务层,毕竟是C的扩展,而且是跑在cli模式,省去了服务器解析,从而提高效率吧。。个人理解
2015-10-14
删除
object8421
https://github.com/LinkedDestiny/swoole-doc,这个链接有好多分析文档啊,大家可以参考下
2015-10-22
删除
咚咚锵
'daemonize' => true 启动后 如何关闭
2015-11-20
删除
詹潮江
现在的版本还有Reactore线程吗?[思考]
这个流程图是不是太旧了?
2015-12-24
删除
yangxiangming-
看Github上面的例子文件、代码好混乱,有没有比较简洁版的dome
2015-12-28
删除
donald
发现BUG,onStart里面写文件 file_put_contents('master_pid.txt', $serv->master_pid);
'daemonize' => true, // 转入后台守护进程运行后,位置不一样了
1 daemonize' => true 在 /root 下
2 daemonize' => false 在 / 下
2016-03-04
删除
Jakwin
什么时候才能在windows上方便使用?希望官方出个dll,放在windows的php目录下加个配置就可以使用就好了!!!!
2016-03-08
删除
柏拉图式劈腿
这货是用来取代nginx和apache的么?
2016-03-19
删除
vkchow
还是linux吧,你自己静下心来自学也就是1、2周的时间。而且eclipse for php也有linux版本,mac os版本,你如果不愿意用linxu,macos也挺好的。。。。顺便又买台苹果电脑。
2016-03-19
删除
搜索
同样的问题,解决了嘛
2016-03-19
删除
蛙饭
并没有 ,估计是php版本问题
2016-03-22
删除
swoole
PHP Fatal error: Class 'swoole_server' not found in /var/www/html/swoole.php on line 3
执行脚本报错了,哪位大神给解决下,swoole扩展确定安装成功了,phpinfo里能看到
2016-03-25
删除
swoole
找到问题了,php-cli模式配置文件没有修改,修改的是php-fpm的。。。
2016-03-28
删除
backer
流程图画得霸气……
2016-04-09
删除
Roderick
为什么我的编译安装好后,加载报错直接是500,swoole_server 加载不了?
2016-06-02
删除
东子
流程图画得霸气……
2016-06-16
删除
爱大奖非师范类
流程图画得霸气……
2016-06-23
删除
test
流程图画得霸气……
2016-06-25
删除
daydaygo
服务器编程, 还是跑在linux虚拟机里面吧, 毕竟大部分线上环境都是linux, 还可以帮助自己熟悉一下linux
2016-08-02
删除
韶飞轶事
server 进程不会随着client进程减少而吗? 我测试了 client进程全部关闭, 但是server进程数不变
2016-08-03
删除
Larry
流程图画得霸气……
2016-08-17
删除
_Calix
流程图画得霸气……
2016-09-07
删除
樱木花涛
流程图看不到
2016-09-08
删除
杨书海
流程图画的不错
2016-09-18
删除
CarloQ
好像还不可以以 cgi 模式运行,然后 nginx 用 fastcgi_pass 来作为前端
2016-09-22
删除
CarloQ
好吧,看了下是可以的,只不过,只能自己实现
2016-09-22
删除
轻舞凋零
看完流程图,一目了然哦
2016-12-08
删除
心灵的架构师
流程图霸气啊 看的我 稀里糊涂的
2016-12-21
删除
xhc
swProcessPool_wait: [Manager]unknow worker[pid=-1]?
2017-02-26
删除
xhc
1.9.6下,SWOOLE_BASE, macOS系统
2017-02-26
删除
洪洋
TCP分server client端, 个人理解Server端应该只用监听接口,为什么还要有IP这个参数,client端才需要去设置IP或者DNS,这点有点难理解。
2017-03-02
删除
洪洋
端口 不是接口 打错了
2017-03-02
删除
悠悠知我心
websocket server $serv->connections这个对象是空的,并且确定有pcre pcre-devel,而且在编译安装swoole前有安装的,没这个nginx的rewrite用不了的
2017-03-09
删除
悠悠知我心
不太可能,swoole是基于epoll的,实现不了
2017-03-09
删除
运行server的时候需要设置最大脚本运行时间以及内存大小吗?
2017-04-09
删除
codinghuang
正在学习,有难度!!
2017-07-01
删除
拼个Léon
怎么标记一个连接为已登录:目的是已登录的用户在一个worker中处理其消息,未登录的在另外一个线程处理。
是不是必须借助 swoole_table 等来实现?
如果有setUserInfo(key, value)那就容易了
2018-09-06
删除
15300269693
请问,,swoole能定义每个request的最大处理时间吗?我在配置里也没有找到相应的配置,那如果有个死循环,这时,是不是这个worker就废了,要一直到重启server呢?
2018-12-18
删除
15806994700
server 端没有enablessl 方法?pop3 starttls 命令 服务端如何支持
2019-02-02
删除
13501216920
Fatal error: Swoole\Server::__construct(): swoole_server only can be used in PHP CLI mode这是怎么回事呢?哪位大神帮忙解答一下呗,能提供基础使用流程吗?
2019-04-09
删除
沈唁
命令行模式运行。
2019-04-09
删除
15011146658
有了swoole 。其他语言做的到的。PHP都可以做到。而且更好
2019-06-12
删除
13160097516
Fatal error: Swoole\Server::__construct(): swoole_server only can be used in PHP CLI mode. in /Users/zhouqiang/file/php/php-swoole/server.php on line 8
一直报这个错,有大神知道是啥情况嘛?初学遇坑
2019-09-04
删除
15513082138
@大爷的杂货铺Server只能在命令行运行
2019-09-10
删除
13147010548
作者能不能画一个 http://doc2.workerman.net/principle.html 这个图 workerman 手册里的图特别好懂
2019-12-11
删除
发布
Swoole.com 2008 - 2022 备案号:苏ICP备19021875号-1 | 苏公网安备 32058302002209号 | 版权声明
官方QQ群:810919826 开发组邮件列表:
team@swoole.com
当前Swoole扩展版本:swoole-SWOOLE_VERSION