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();
}