MyQEE\Server\Server::startWorkerServer PHP Method

startWorkerServer() protected method

protected startWorkerServer ( $config = null )
    protected function startWorkerServer($config = null)
    {
        switch (self::$serverType) {
            case 3:
            case 2:
                # 主端口同时支持 WebSocket 和 Http 协议
                $className = '\\Swoole\\WebSocket\\Server';
                break;
            case 1:
                # 主端口仅 Http 协议
                $className = '\\Swoole\\Http\\Server';
                break;
            case 0:
            default:
                # 主端口为自定义端口
                $className = '\\Swoole\\Server';
                break;
        }
        # 创建一个服务
        self::$server = new $className(self::$config['server']['host'], self::$config['server']['port'], self::$serverMode, self::$config['server']['sock_type']);
        # 设置配置
        self::$server->set($config ?: self::$config['swoole']);
        $this->bind();
        if (self::$config['sockets']) {
            $this->initSockets();
        }
        if (self::$clustersType > 0) {
            if (self::$config['clusters']['register']['is_register']) {
                # 启动注册服务器
                $worker = new Register\WorkerMain(self::$server);
                $worker->name = 'RegisterServer';
                $worker->listen(self::$config['clusters']['register']['ip'], self::$config['clusters']['register']['port']);
                # 放在Worker对象里
                self::$workers['RegisterServer'] = $worker;
            }
        }
        self::$server->start();
    }