Bootstrap\Worker::run PHP Метод

run() публичный Метод

public run ( $ip = "0.0.0.0", $port = 55656, $mode = SWOOLE_PROCESS, $type = SWOOLE_SOCK_TCP )
    public function run($ip = "0.0.0.0", $port = 55656, $mode = SWOOLE_PROCESS, $type = SWOOLE_SOCK_TCP)
    {
        if (empty($port)) {
            $port = $this->handleWorkerPort;
        } else {
            $this->handleWorkerPort = $port;
        }
        $serv = new \swoole_server($ip, $port, $mode, $type);
        //处理客户端发送的数据
        $serv->addlistener('0.0.0.0', $this->handleProviderPort, SWOOLE_SOCK_TCP);
        //处理统计页面请求的数据
        $serv->addlistener('0.0.0.0', $this->udpFinderport, SWOOLE_SOCK_UDP);
        //recv udp broadcast
        $serv->config = \Config\Server::getServerConfig();
        $serv->set($serv->config);
        $serv->on('Start', array($this, 'onStart'));
        $serv->on('WorkerStart', array($this, 'onWorkerStart'));
        $serv->on('Connect', array($this, 'onConnect'));
        $serv->on('Receive', array($this, 'onReceive'));
        $serv->on('Task', array($this, 'onTask'));
        $serv->on('Finish', array($this, 'onFinish'));
        $serv->on('WorkerError', array($this, 'onWorkerError'));
        $serv->on('Close', array($this, 'onClose'));
        $serv->on('WorkerStop', array($this, 'onWorkerStop'));
        $serv->on('Shutdown', array($this, 'onShutdown'));
        $serv->on('ManagerStart', function ($serv) {
            global $argv;
            swoole_set_process_name("php {$argv[0]}: manager");
        });
        $serv->start();
    }

Usage Example

Пример #1
0
<?php

/**
 * 启动 php worker.php
 * 收集并且处理统计相关数据
 * @author xmc
 */
date_default_timezone_set("asia/shanghai");
include __DIR__ . '/Bootstrap/Worker.php';
include __DIR__ . '/Bootstrap/Autoload.php';
use Bootstrap\Worker;
define('BASEDIR', __DIR__);
spl_autoload_register('autoload');
$worker = new Worker();
$worker->run("0.0.0.0", 55656);