入门指引 Server Client Process AsyncIO Memory HttpServer WebSocket 高级 其他

发布于 2015-08-09 09:42:00 | 155 次阅读 | 评论: 0 | 来源: 网络整理

Server启动在主进程的主线程回调此函数,函数原型

function onStart(swoole_server $server);

在此事件之前Swoole Server已进行了如下操作

  • 已创建了manager进程
  • 已创建了worker子进程
  • 已监听所有TCP/UDP端口
  • 已监听了定时器

接下来要执行

  • 主Reactor开始接收事件,客户端可以connect到Server

onStart回调中,仅允许echo、打印Log、修改进程名称。不得执行其他操作。onWorkerStart和onStart回调是在不同进程中并行执行的,不存在先后顺序。

可以在onStart回调中,将$serv->master_pid和$serv->manager_pid的值保存到一个文件中。这样可以编写脚本,向这两个PID发送信号来实现关闭和重启的操作。

从1.7.5+ Master进程内不再支持定时器,onMasterConnect/onMasterClose2个事件回调也彻底移除。Master进程内不再保留任何PHP的接口。

onStart事件在Master进程的主线程中被调用。

在onStart中创建的全局资源对象不能在worker进程中被使用,因为发生onStart调用时,worker进程已经创建好了。
新创建的对象在主进程内,worker进程无法访问到此内存区域。
因此全局对象创建的代码需要放置在swoole_server_start之前。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务