public function __construct() { $http = new swoole_http_server("0.0.0.0", 8080); $http->set(array('worker_num' => 16, 'max_conn' => 10000, 'max_request' => 5000, 'dispatch_mode' => 1, 'daemonize' => 1, 'log_file' => '/var/log/swoole.log')); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; } else { HttpServer::$server = []; } if (isset($request->header)) { HttpServer::$header = $request->header; } else { HttpServer::$header = []; } if (isset($request->get)) { HttpServer::$get = $request->get; } else { HttpServer::$get = []; } if (isset($request->post)) { HttpServer::$post = $request->post; } else { HttpServer::$post = []; } // TODO handle img ob_start(); try { //var_dump(HttpServer::$server['request_uri']); $_SERVER['REQUEST_URI'] = HttpServer::$server['request_uri']; //$_SERVER['REMOTE_ADDR'] = HttpServer::$server['request_uri']; $yaf_request = new Yaf_Request_Http(HttpServer::$server['request_uri']); $this->application->getDispatcher()->dispatch($yaf_request); // unset(Yaf_Application::app()); } catch (\Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); // add Header $response->header('Content-Type', 'no-cache, must-revalidate'); $response->header('Content-Type', 'application/json'); //$response->header('Content-Encoding', 'gzip'); $response->header('Server', 'verycloud'); // add cookies // set status $response->end($result); }); $http->on('WorkerStop', array($this, 'onWorkerStop')); $http->start(); }
public function __construct() { $http = new swoole_http_server("127.0.0.1", 9501); $http->set(array('worker_num' => 16, 'daemonize' => true, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; } else { HttpServer::$server = []; } if (isset($request->header)) { HttpServer::$header = $request->header; } else { HttpServer::$header = []; } if (isset($request->get)) { HttpServer::$get = $request->get; } else { HttpServer::$get = []; } if (isset($request->post)) { HttpServer::$post = $request->post; } else { HttpServer::$post = []; } // TODO handle img ob_start(); try { $yaf_request = new Yaf\Request_Http(HttpServer::$server['request_uri']); $this->application->getDispatcher()->dispatch($yaf_request); // unset(Yaf_Application::app()); } catch (Yaf_Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); // add Header // add cookies // set status $response->end($result); }); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 8, 'daemonize' => false, 'max_request' => 1000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; foreach ($request->server as $key => $value) { $_SERVER[strtoupper($key)] = $value; } } if (isset($request->header)) { HttpServer::$header = $request->header; } if (isset($request->get)) { HttpServer::$get = $request->get; foreach ($request->get as $key => $value) { $_GET[$key] = $value; } } if (isset($request->post)) { HttpServer::$post = $request->post; foreach ($request->post as $key => $value) { $_POST[$key] = $value; } } if (isset($request->request_uri)) { $_SERVER['REQUEST_URI'] = $request->request_uri; } ob_start(); //实例化ycf对象 try { Ycf\Core\YcfCore::run(); } catch (Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); $response->end($result); unset($result); }); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 10, 'daemonize' => false, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; foreach ($request->server as $key => $value) { $_SERVER[strtoupper($key)] = $value; } } if (isset($request->header)) { HttpServer::$header = $request->header; } if (isset($request->get)) { HttpServer::$get = $request->get; foreach ($request->get as $key => $value) { $_GET[$key] = $value; } } if (isset($request->post)) { HttpServer::$post = $request->post; foreach ($request->post as $key => $value) { $_POST[$key] = $value; } } ob_start(); //实例化yii对象 try { $this->application = Yii::createWebApplication(FRAMEWORK_CONFIG); $this->application->run(); } catch (Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); $response->end($result); unset($result); unset($this->application); }); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 16, 'daemonize' => false, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; foreach ($request->server as $key => $value) { $_SERVER[strtoupper($key)] = $value; } } if (isset($request->header)) { HttpServer::$header = $request->header; } if (isset($request->get)) { HttpServer::$get = $request->get; foreach ($request->get as $key => $value) { $_GET[$key] = $value; } } if (isset($request->post)) { HttpServer::$post = $request->post; foreach ($request->post as $key => $value) { $_POST[$key] = $value; } } /* $uri = explode( "?", $_SERVER['REQUEST_URI'] ); $_SERVER["PATH_INFO"] = $uri[0]; if( isset( $uri[1] ) ) { $_SERVER['QUERY_STRING'] = $uri[1]; }*/ $_SERVER['argv'][1] = $_SERVER["PATH_INFO"]; ob_start(); require_once './ThinkPHP/ThinkPHP.php'; $result = ob_get_contents(); ob_end_clean(); $response->end($result); }); $http->start(); }
public function __construct() { $http = new swoole_http_server('0.0.0.0', 9502); $http->set(array('worker_num' => 4, 'daemonize' => 0, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; } else { HttpServer::$server = []; } if (isset($request->header)) { HttpServer::$header = $request->header; } else { HttpServer::$header = []; } if (isset($request->get)) { HttpServer::$get = $request->get; } else { HttpServer::$get = []; } if (isset($request->post)) { HttpServer::$post = $request->post; } else { HttpServer::$post = []; } ob_start(); try { $yaf_request = new Yaf_Request_Http(HttpServer::$server['request_uri']); $this->application->getDispatcher()->dispatch($yaf_request); } catch (Yaf_Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); $response->end($result); }); $http->start(); }
/** * 构造方法,要执行的东西很多 * @author xuebing<*****@*****.**> */ public function __construct() { $config = new Yaf\Config\Ini(CONF_PATH . 'swoole.ini'); $config = $config->get('swoole'); self::$http = new swoole_http_server("0.0.0.0", $config->port); self::$http->set(array('worker_num' => $config->worker_num, 'max_conn' => $config->max_conn, 'max_request' => $config->max_request, 'ipc_mode' => $config->ipc_mode, 'task_worker_num' => $config->task_worker_num, 'task_ipc_mode' => $config->task_ipc_mode, 'task_max_request' => $config->task_max_request, 'dispatch_mode' => $config->dispatch_mode, 'daemonize' => $config->daemonize, 'backlog' => $config->backlog, 'open_tcp_keepalive' => $config->open_tcp_keepalive, 'tcp_defer_accept' => $config->tcp_defer_accept, 'open_tcp_nodelay' => $config->open_tcp_nodelay, 'log_file' => APP_PATH . '/log/swoole.log')); self::$http->on('request', function ($request, $response) { if (isset($request->post)) { self::$post = $request->post; } self::$raw_data = $request->rawContent(); echo "[" . date('Y-m-d H:i:s') . "]" . PHP_EOL . "请求地址==>" . $request->server['request_uri'] . PHP_EOL . "请求内容==>" . self::$raw_data . PHP_EOL; if (self::$raw_data == 'swoole_reload()') { self::$http->reload(); $response->end('reload success'); return; } try { // TODO handle $yaf_response = $this->application->getDispatcher()->dispatch(new Yaf\Request\Http($request->server['request_uri'])); $result = $yaf_response->getBody(); } catch (\Exception $e) { $result = array(); $result['err_code'] = $e->getCode(); $result['err_msg'] = $e->getMessage(); $result = json_encode($result, JSON_UNESCAPED_UNICODE); } echo "返回内容==>" . $result . PHP_EOL . PHP_EOL; $response->end($result); }); self::$http->on('Finish', function ($serv, $task_id, $data) { echo "异步任务完成[{$task_id}],data:" . $data . PHP_EOL; }); self::$http->on('Task', function ($serv, $task_id, $from_id, $data) { echo "新的异步任务[来自进程 {$from_id},当前进程 {$task_id}],data:" . $data . PHP_EOL; $data = unserialize($data); if (is_array($data)) { list($module, $controller, $action, $params) = $data; $request = new Yaf\Request\Simple('CLI', $module, $controller, $action, $params); $this->application->getDispatcher()->dispatch($request); $serv->finish("task -> OK"); } }); self::$http->on('Timer', function ($serv, $interval) { switch ($interval) { case 300000: break; } }); self::$http->on('Start', function ($serv) { cli_set_process_title("swoolehttp:main"); file_put_contents(APP_PATH . '/log/swoole-master.pid', $serv->master_pid); }); self::$http->on('WorkerStart', array($this, 'onWorkerStart')); self::$http->on('ManagerStart', function ($serv) { cli_set_process_title("swoolehttp:manager"); file_put_contents(APP_PATH . '/log/swoole-manager.pid', $serv->master_pid); }); self::$http->on('Shutdown', function ($serv) { echo 'Shutdown' . PHP_EOL; }); self::$http->on('WorkerError', function ($serv, $worker_id, $worker_pid, $exit_code) { }); self::$http->start(); }