public function run($ip = "0.0.0.0", $port = 55656, $mode = SWOOLE_PROCESS, $type = SWOOLE_SOCK_UDP) { 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 | SWOOLE_SOCK_UDP); //处理统计页面请求的数据 $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(); }